开发指南专题六:JEECG微云快速开发平台代码生成
开发指南专题六:JEECG微云快速开发平台代码生
1.1.代码生成扫描路径配置
用代码生成器生成代码后,需要进行相关配置配置,扫描注入control、service、entity等;
详细操作步骤如下:
1.control扫描配置,在spring-mvc.xml文件里面
2.Service扫描路径配置,spring-mvc-hibernate.xml
3.实体Entity扫描路径配置,spring-mvc-hibernate.xml
1.2.1.添加菜单并授权
重新启动Tomcat,进入系统主界面->系统管理->菜单管理,点击菜单录入,添加员工管理菜单,如图44所示。
菜单地址内容为:类映射名.do?方法名,如personController.do?person
菜单添加完成之后,需要将该菜单分配给管理员角色,重新登录系统后,可以在系统管理模块下看到子菜单【员工管理】,如图45所示。
1.2.3.功能测试
点击菜单项【员工管理】,打开员工管理的主界面如图46所示。
点击【录入】按钮,在弹出的对话框中录入员工基本信息,如图47所示
点击确定按钮,对信息进行保存,此时可以在用户列表中看到新录入的信息,同时在数据库中也可以看到数据被保存入库,如图48所示。
1.3.代码生成器使用规则
1.3.1.建表规范
1.表必须有唯一主键:ID(字符类型32位)
备注:主键采用UUID方式生成
主键支持自定义,修改jeecg_config.properties的参数[jeecg_generate_table_id]即可;
2.如需使用框架自动生成表创建人,创建时间等,必须字段参见“表42建表模板”
3.表字段必须有注释
备注:JSP页面字段文本,是根据表字段注释来生成
注:请按照建表模板表42来创建新表,模板表中原有的字段,生成器会过滤不在页面生成。
字段名 |
类型 |
长度 |
备注 |
主键 |
ID |
varchar |
36 |
主键 |
TURE |
CREATE_BY |
varchar |
36 |
创建人 |
|
CREATE_NAME |
varchar |
32 |
创建人名字 |
|
CREATE_DATE |
datetime |
0 |
创建时间 |
|
UPDATE_BY |
varchar |
36 |
修改人 |
|
UPDATE_NAME |
varchar |
32 |
修改人名字 |
|
UPDATE_DATE |
datetime |
0 |
修改时间 |
|
DELFLAG |
int |
2 |
删除标记 |
|
DEL_DATE |
datetime |
0 |
删除时间 |
1.3.2.页面生成规则
说明:JSP页面字段的文本内容,取表字段的注释前6位字符(如果建表字段注释为空,则页面字段文本会为空)
A.默认生成的JSP页面前五个字段为必须项,其他字段为非必须输入(需要自己手工加)
B.数据库字段类型为:datetime-->对应页面字段,会自动追加[年月日-时分秒]时间控件
C.数据库字段类型为:date-->对应页面会字段,自动追加[年月日]时间控件
D.数据库字段类型为:Int/Number-->对应页面字段,会自动追加数字校验(不允许输入小数)
E.数据库字段类型为:float/double/decimal-->对应页面页面字段,会自动追加数字校验(允许输入小数)
F.如果表字段为字符类型,并且设置了长度,页面输入框会自动设置maxlength对应表字段长度
1.4.一对多的代码生成
1.4.1.一对多代码生成器使用
单表的代码生成器入口类是test.JeecgOneGUI;一对多的代码生成器入口类是test.JeecgOneToMainUtil。
一对多的代码生成器使用示例:
//第一步:设置主表 CodeParamEntitycodeParamEntityIn=newCodeParamEntity(); codeParamEntityIn.setTableName("jeecg_order_main");//主表[表名] codeParamEntityIn.setEntityName("Demo4ManyKey");//主表[实体名] codeParamEntityIn.setEntityPackage("jeecg");//主表[包名] codeParamEntityIn.setFtlDescription("订单主数据");//主表[描述] //第二步:设置子表集合 List<SubTableEntity>subTabParamIn=newArrayList<SubTableEntity>(); //[1].子表一 SubTableEntitypo=newSubTableEntity(); po.setTableName("jeecg_order_custom");//子表[表名] po.setEntityName("DemoMany4CustomKey");//子表[实体名] po.setEntityPackage("jeecg");//子表[包] po.setFtlDescription("订单客户明细");//子表[描述] po.setForeignKeys(newString[]{"GORDER_OBID","GO_ORDER_CODE"});//子表[外键:与主表关联外键] subTabParamIn.add(po); //[2].子表二 SubTableEntitypo2=newSubTableEntity(); po2.setTableName("jeecg_order_product");//子表[表名] po2.setEntityName("DemoMany4ProductKey");//子表[实体名] po2.setEntityPackage("jeecg");//子表[包] po2.setFtlDescription("订单产品明细");//子表[描述] po2.setForeignKeys(newString[]{"GORDER_OBID","GO_ORDER_CODE"});//子表[外键:与主表关联外键] subTabParamIn.add(po2); codeParamEntityIn.setSubTabParam(subTabParamIn); //第三步:一对多(父子表)数据模型,代码生成 CodeGenerateOneToMany.oneToManyCreate(subTabParamIn,codeParamEntityIn); |
1.5.使用规范
1.目前代码生成器默认的主键生成策略为UUID
2.主表和子表的目录最好保持一致
3.子表和主表的外键规则如下:
a)主表和子表的外键字段名字,必须相同(除主键ID外)
子表引用主表主键ID作为外键,外键字段必须以_ID结尾