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); } ```