P3插件代码生成器
===
该代码生成器生成P3插件开发的代码,springmvc+minidao+velocity
生成的代码结构见下图
![](https://img.kancloud.cn/0e/8d/0e8dafe4640fcc6ff1239a6edde2f896_316x385.png)
## 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设置需要生成的表,多张表逗号分隔
![](https://img.kancloud.cn/8b/b4/8bb4b5c75668664d51ec3e24cb6f09b0_956x380.png)
运行“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技术方案