JeeSite 4.x

Spring Boot 最好的快速开发平台

在线代码生成、单表、主子表、树表、快速入门

引言

代码生成是帮助开发者快速生成通用增删改查的工具,一般情况生成后的代码部署后即可运行。

然后对生成后的代码进行布局调整,增加业务代码,实现你的业务。极大地简化了你的基础重复代码编写时间。

生成代码的流程

1)单表

  1. 配置表基本信息,下一步;
  2. 配置表字段信息,必须有一个主键,下一步;
  3. 配置表生成信息,选择“单表/主子表”生成模板,点击“保存并生成代码”按钮;
  4. 配置菜单和权限标识,与Controller里@RequestMapping和@RequiresPermissions对应;
  5. 关闭服务,刷新Eclipse工程,启动服务。

2)主子表

  1. 配置主表信息,主表字段,主表生成信息,选择“单表/主子表”模板,先暂存配置;
  2. 配置子表信息,选择父表和当前表,关联父表主键的外键字段,子表字段,下一步;
  3. 回到主表生成界面,点击“保存并生成代码”按钮,可同时生成主表和子表的增删改查代码。
  4. 配置菜单和权限标识,与Controller里@RequestMapping和@RequiresPermissions对应。
  5. 关闭服务,刷新Eclipse工程,启动服务。

3)树结构表

  1. 与主子表不同的地方,如下:
  2. 在生成信息选项卡中选择“树表“生成模板。
  3. 设置“树显示编码字段”和“树显示名称字段”即可。

4)代码生成示例

可参考初始化脚本自带的 test_data 和 test_tree 两个配置,如下

研发工具菜单中的功能实例代码,都在 web 项目下,进行查看。

平台表结构文档

一张图展示 JeeSite 的表接口,表之间的关系:

点击图片,看大图。

源文件下载地址:https://gitee.com/thinkgem/jeesite4/blob/master/modules/core/db/core.erm

如果 erm 文件打不开,请使用 Eclipse 安装 ERMaster 插件,菜单 Help -> Install New Software -> Work with:https://thinkgem.github.io/ermasterr/updatesite -> Select All -> 取消 Contact all update site… 复选框 -> 点击 Next 直到 Finish. 也可以手动下载安装插件包安装到 Eclipse:https://gitee.com/thinkgem/ermasterr

业务表结构设计方法

打开 web 项目下 /db/test.erm 文件,直接复制该文件,添加自己的业务表即可。

该文件中已经内置了一些字段组,帮助你快速创建(这些字段不用你去每个去编写,而是选择即可)如下:

DataEntity:

字段名 类型 备注
status char(1) 状态(0正常 1删除 2停用 3冻结 4审核 5驳回 9草稿)
create_by varchar(64) 创建者
create_date datetime 创建时间
update_by varchar(64) 更新者
update_date datetime 更新时间
remarks nvarchar(500) 备注

DataEntityNoStatus:

字段名 类型 备注
create_by varchar(64) 创建者
create_date datetime 创建时间
update_by varchar(64) 更新者
update_date datetime 更新时间
remarks nvarchar(500) 备注

TreeEntity:

字段名 类型 备注
parent_code varchar(64) 父级编号
parent_codes varchar(1000) 所有父级编号
tree_sort decimal(10) 本级排序号(升序)
tree_sorts varchar(1000) 所有级别排序号
tree_leaf char(1) 是否最末级
tree_level decimal(4) 层次级别
tree_names nvarchar(1000) 全节点名

BaseEntity:

字段名 类型 备注
id varchar(64) 编码
status char(1) 状态

BaseEntityCorp:

字段名 类型 备注
corp_code varchar(64) 租户代码
corp_name nvarchar(100) 租户名称

ExtendEntity:

字段名 类型 备注
extend_s1 nvarchar(500) 扩展 String 1
extend_s2 nvarchar(500) 扩展 String 2
extend_s3 nvarchar(500) 扩展 String 3
extend_s4 nvarchar(500) 扩展 String 4
extend_s5 nvarchar(500) 扩展 String 5
extend_s6 nvarchar(500) 扩展 String 6
extend_s7 nvarchar(500) 扩展 String 7
extend_s8 nvarchar(500) 扩展 String 8
extend_i1 decimal(19) 扩展 Integer 1
extend_i2 decimal(19) 扩展 Integer 2
extend_i3 decimal(19) 扩展 Integer 3
extend_i4 decimal(19) 扩展 Integer 4
extend_f1 decimal(19,4) 扩展 Float 1
extend_f2 decimal(19,4) 扩展 Float 2
extend_f3 decimal(19,4) 扩展 Float 3
extend_f4 decimal(19,4) 扩展 Float 4
extend_d1 datetime 扩展 Date 1
extend_d2 datetime 扩展 Date 2
extend_d3 datetime 扩展 Date 3
extend_d4 datetime 扩展 Date 4

代码生成选项说明

表基本信息

  • 表名:物理表表名(实际表名)
  • 表说明:物理表表描述,生成到各个类上
  • 实体类名称:实体类的名称,所有类的前缀
  • 功能作者:开发者姓名,生成到类注释上
  • 关联父表的表名:子表配置的选项,选择父表表名
  • 本表关联的外键名:子表配置的选项,与父表主键关联的字段,也叫外键

表字段信息

1)字段

  • 列名:数据表定义的字段名称,通过驼峰命名法转换为实体类的字段名
  • 列说明:数据表定义的字段注释,如果注释中带括号,或冒号,则括号中或冒号后的内容不生成到列标签中,只在列注释中体现。
  • 字段类型:数据表定义字段类型
  • 属性类型:也叫Java类型,是实体类的属性字段类型
  • 属性名称:也叫Java字段,是实体类的属性字段名,支持复杂格式:对象名.属性名|属性名2,例如:用户user.userCode|userName,主要用于树选择组件;如果子表,则写主表实体类名+主键,如:formEntity.entityId。
  • 主键:是否是主键字段。选择为“隐藏域字段”代表:自动生成主键;选择为“选择文本域”则代表有用户来手填主键值。
  • 插入:是否是插入字段,如果是则包含在insert语句里
  • 更新:是否是更新字段,如果是则包含在update语句里,不一定不出现在表单上

2)列表

  • 列表:是否是列表查询,如果是则包含在列表页的表格列里。
  • 查询:是否是查询字段,如果是则包含在查询页的查询列表里。
  • 匹配方式:查询字段的查询方式,也就是where后的条件表达式,如:字段1=字段2 AND 字段3>字段4 AND 字段5 !=字段6。

3)表单

  • 编辑:是否是编辑字段,如果是则包含在update语句里,并出现在表单上
  • 必填:该字段是否可为空,不选代表为必填字段
  • 控件类型:表单中字段生成的样式,如:input,select,treeselect,areatext等等
  • 栅格:就是 BootStrap 的栅格布局,格式:行/标签/输入框,6/4/8、12/2/10、12/2/5、12/2/8
  • 新行:该表单控件新起一行生成,也就是生成一个新的 <div class="row"></div> 标签。
  • 字典类型:如果控件类型:下拉框、复选框、单选框,则该字段必须指定一个字典类型,字典类型为字段管理中的字典类型。
  • 字段验证:数值、整数、日期、时间、账号、邮件、手机号、身份证号等。

表生成信息

  • 生成模板:单表/主子表(增删改查)、树表/树结构表(增删改查)、业务层和持久层(增删改查)、仅持久层(dao/mapper/entity)
  • 生成包路径:生成在哪个java包下,格式:{包名}/{模块名}/{分层(dao,entity,service,web)}/{子模块名}/{java类} 可从参数设置里修改:“gen.defaultPackageName” 的键值,来修改此默认值。如 com.jeesite.modules
  • 生成模块名:生成包下的模块名称,模块名称下进行分层,也可理解为子系统名,例如 sys
  • 生成子模块名:分层下的文件夹,可选,{分层(entity/dao/service/controller)}/{子模块名}/,可为空。
  • 生成功能名:生成到类注释里。
  • 功能名(简写):生成功能提示,如TAB上、列表上、提示信息(某某成功、某某失败)等。
  • 生成基础路径:填写磁盘绝对路径,若不填写,则生成到当前Web项目下

其它选项

  • 是否有启用停用:生成停用启用功能,生成表必须要有status字段。
  • 是否有删除功能:生成删除数据功能,可删除数据。
  • 是否可上传图片:生成上传图片控件。
  • 是否可上传附件:生成上传文件控件。

自定义生成模板

有时根据业务需要,可能会个性化一些省模板。JeeSite 提供了自定义“代码生成模板”功能。

你只需要拷贝/jeesite-module-core/src/main/resources/templates/modules/gen/config.xml文件,并重名为config-custom.xml放到任意项目的/src/main/resources/templates/modules/gen/目录下即可,然后修改你的生成配置就可生效。

这个 config.xml 内配置了配置模板的所有信息。

关注 JeeSite 公众号,了解最新动态