P3插件代碼生成器
===
該代碼生成器生成P3插件開發的代碼,springmvc+minidao+velocity
生成的代碼結構見下圖

## 1.代碼生成器配置
代碼生成器兩個配置文件:
| 配置類型| 配置文件|
| ---| ---| ---|
| 代碼生成器參數配置 | src/main/resources/p3/p3-cg-config.properties|
| 數據源配置| src/main/resources/p3/p3-cg-dbconfig.properties|
## 2.建表
現在有一張員工表person,其建表SQL為:
```
CREATE TABLE `person` (
`ID` varchar(32) NOT NULL default '' COMMENT '主鍵',
`NAME` varchar(32) default NULL COMMENT '用戶名',
`AGE` int(11) default NULL COMMENT '年齡',
`SALARY` decimal(10,2) default NULL COMMENT '工資',
`createDt` datetime default NULL COMMENT '創建時間',
PRIMARY KEY (`ID`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
```
注意:建表時,必須給每個字段加上注釋,代碼生成器會根據注釋去生成頁面字段對應的顯示文本。
## 3.單表代碼生成
#### (1)生成文件配置
1、數據源配置p3-cg-dbconfig.properties
配置需要生成的表所在的數據庫連接
2、代碼生成器配置p3-cg-config.properties
配置說明:
workspace_path:需要代碼生成到的工作空間
path_src:代碼生成到的工程名
base_package:代碼生成的根目錄
bussi_package:代碼生成的業務包名
generate_ui_filter_fields:代碼生成是不需要生成到頁面上的字段
#### (2)代碼生成
P3CodeGenerateUtil該類單表模式生成
變量code_cg_tables設置需要生成的表,多張表逗號分隔

運行“src/main/java/test/p3/P3CodeGenerateUtil.java”文件,生成代碼。
## 4.一對多的代碼生成
一對多的代碼生成工具類/src/main/java/test/p3/P3OneToMainUtil.java
```
/**
* 一對多(父子表)數據模型,生成方法
* @param args
*/
public static void main(String[] args) {
//第一步:設置主表配置
CodeParamEntity codeParamEntityIn = new CodeParamEntity();
codeParamEntityIn.setProjectName("demo"); //工程名
codeParamEntityIn.setEntityPackage("test"); //包名
codeParamEntityIn.setTableName("jeecg_order_main");//主表名
codeParamEntityIn.setEntityName("Order"); //實體名
codeParamEntityIn.setFtlDescription("訂單"); //描述
//第二步:設置子表集合配置
List<SubTableEntity> subTabParamIn = new ArrayList<SubTableEntity>();
//[1].子表一
SubTableEntity po = new SubTableEntity();
po.setTableName("jeecg_order_custom");//子表名
po.setEntityName("Custom"); //實體名
po.setEntityPackage("test"); //包名
po.setFtlDescription("客戶明細"); //描述
//子表外鍵參數配置
po.setForeignKey("go_order_code");//子表外鍵
po.setMainForeignKey("go_order_code");//對應的主表字段
subTabParamIn.add(po);
//[2].子表二
SubTableEntity po2 = new SubTableEntity();
po2.setTableName("jeecg_order_product"); //子表名
po2.setEntityName("Product"); //實體名
po2.setEntityPackage("test"); //包名
po2.setFtlDescription("產品明細"); //描述
//子表外鍵參數配置
po2.setForeignKey("go_order_code");//子表外鍵
po2.setMainForeignKey("go_order_code");//對應的主表字段
subTabParamIn.add(po2);
codeParamEntityIn.setSubTabParam(subTabParamIn);
//第三步:一對多(父子表)數據模型,代碼生成
CodeGenerateFactoryOneToMany.oneToManyCreate(codeParamEntityIn,subTabParamIn);
}
```
- 總體介紹
- 快速了解
- 平臺優勢
- 技術支持
- 社區榮譽
- 開發環境準備
- JEECG私服Maven
- 代碼結構說明
- 入門開發環境搭建
- 開發工具
- 代碼生成器使用
- GUI代碼生成器
- Online代碼生成器
- P3插件代碼生成器
- 代碼生成器配置
- 功能介紹
- 權限開發手冊
- Online開發權限
- Online表單訪問規則
- 列表按鈕權限控制
- 列表數據權限控制
- 頁面表單權限控制(一對多表)
- 頁面表單權限控制(單表)
- 其他
- 二級管理員手冊
- 接口權限配置
- 平臺權限設計總覽
- 編碼開發方式
- 列表按鈕權限用法
- 列表數據權限用法
- 數據權限自定義SQL
- 表單權限用法
- UI標簽庫文檔
- AuthFilter(頁面權限標簽)
- Autocomplete(自動補全標簽)
- BaseTag(樣式和JS引入標簽)
- Choose(彈出選擇標簽)
- ComboTree(下拉樹形選擇框)
- Datagrid(數據列表標簽)
- DepartSelectTag(部門樹選擇標簽)
- DictSelect(數據字典下拉選擇框)
- FormValidation(表單提交及驗證標簽)
- HasPermissionTag(頁面權限標簽)
- Menu(左側菜單生成標簽)
- MutiLang(國際化標簽)
- OrgSelectTag(部門樹列表選擇標簽)
- SelectZTree(Ztree樹控件)
- Tabs(選項卡父標簽)
- TreeSelectTag樹分類標簽
- Upload(上傳標簽)
- UserSelectTag(用戶選擇標簽)
- WebUploader(上傳標簽)
- 查詢構造器
- 查詢過濾器
- 高級查詢構造器
- 專題功能介紹
- 國際化使用
- 多數據源使用
- 定時任務
- 平臺JWT接口文檔
- 消息中心
- Online在線開發
- Online二次開發
- Online代碼生成
- Online唯一性校驗配置
- Online查詢機制(數據權限)
- Online樹形表單配置
- Online表單填值規則
- Online表單對外接口
- Online表單控件
- Online表單配置
- Online表單高級應用
- Online報表開發
- Online圖形報表配置
- Online數據報表配置
- Online移動報表配置
- 自定義表單設計
- 自定義表單權限
- 列表空間權限控制
- 功能介紹
- 常規控件權限控制
- 自定義表單配置
- 自定義表單二次開發
- 自定義表單控件
- 自定義表單數據源
- 自定義表單模板
- 自定義表單配置
- 自定義表單高級應用
- 表單數據維護
- 附錄小技巧
- datagrid擴展屬性用法
- Formvalid新增屬性tiptype的使用
- JEECG單點集成文檔
- Jeecg定時任務開發
- JEECG常見問題貼
- Redis與Ehcache切換文檔
- Toolbar自定義js參數規則
- UI標簽規則
- 列表多表頭的設計
- 列表拓展字段展示
- 列表自定義查詢條件
- 員工入職開發規范文檔V1.0
- 數據列表合計功能
- 登錄權限攔截器排除方法
- 組織機構導入功能使用說明
- 表單字段重復校驗方法
- JEECG新技術
- 新版UI技術方案