EasyCode插件介绍
EasyCode开源地址:https://gitee.com/makejava/EasyCode
EasyCode是基于IntelliJ IDEA Ultimate版开发的一个代码生成插件,主要通过自定义模板(基于velocity)来生成各种你想要的代码。通常用于生成Entity、Dao、Service、Controller。如果你动手能力强还可以用于生成HTML、JS、PHP等代码。理论上来说只要是与数据有关的代码都是可以生成的。
支持的数据库类型
因为是基于Database Tool开发,所有Database Tool支持的数据库都是支持的。包括如下数据库:
- MySQL
- SQL Server
- Oracle
- PostgreSQL
- Sqlite
- Sybase
- Derby
- DB2
- HSQLDB
- H2
当然支持的数据库类型也会随着Database Tool插件的更新同步更新。
功能说明
- 支持多表同时操作
- 支持同时生成多个模板
- 支持自定义模板
- 支持自定义类型映射(支持正则)
- 支持自定义附加列
- 支持列附加属性
- 所有配置项目支持分组模式,在不同项目(或选择不同数据库时),只需要切换对应的分组,所有配置统一变化。
功能对比
功能 |
Easy Code |
其他工具 |
自定义模板 |
支持 |
支持 |
多表生成 |
支持 |
支持 |
生成方式 |
无缝集成在项目中 |
部分工具需要复制粘贴 |
附加列 |
支持 |
不支持 |
附加列属性 |
支持 |
不支持 |
动态调试模板 |
支持 |
不支持 |
图形化界面 |
支持 |
部分支持 |
使用环境 |
仅限IDEA |
支持各种形式 |
在线支持 |
后期扩展 |
不支持 |
自定义类型映射 |
支持 |
部分支持 |
全局变量 |
支持 |
不支持 |
使用文档
https://gitee.com/makejava/EasyCode/wikis/pages
EasyCode插件安装
在线安装
进入 Settings -> Plugins -> Marketplace -> 在搜索框输入EasyCode
,点击Installed
安装,效果如下图:
EasyCode安装后不需要重启IDEA,可以直接使用。
离线安装
有可能因为网络原因无法在线安装,可以通过关注公众号【程序员平安】回复消息【1017】 获取安装包,根据自己的IDEA版本下载对应的插件,效果如下图:
离线安装步骤如下:
进入 Settings -> Plugins -> 设置按钮 -> Install Plugin from Disk... -> 选择下载的安装包,效果如下图:
EasyCode插件使用
参考https://gitee.com/makejava/EasyCode
IDEA添加数据源
动图教程
说明:
- 首次添加数据源需要先下载驱动。
- 支持哪些数据源处决于IDEA,与EasyCode无关。
单表生成代码
动图教程
说明
- 每张表生成一次代码后,配置信息将会被保存,方便下次生成。
- 禁止提示表示所有对话框不再弹出,并自动确认。
- 多module项目,注意需要先选择module。
- 统一配置(鸡肋)后面会介绍。
多表生成代码
动图教程
说明
- 可以通过按住ctrl键去选中多张表,或者通过shift方式。
- 默认使用最先被选中的表的配置信息。
添加类型映射
动图教程
说明
- 默认只有一部分类型映射,其他的需要用户自行添加。
- 类型映射统一使用正则表达式实现。
- 不需要使用Java编码时的\转义符,直接使用\即可。
示例
表达式 |
可匹配项 |
可匹配项 |
可匹配项 |
可匹配项 |
不可匹配项目 |
int\(\d+\) |
int(1) |
int(2) |
int(10) |
int(99999) |
int |
int(\(\d+\))? |
int |
int(1) |
int(10) |
int(99999) |
|
decimal\(\d+,\d+\) |
decimal(1,1) |
decimal(10,10) |
decimal(100,100) |
decimal(10,1) |
decimal(1) |
decimal\(\d+(,\d+)?\) |
decimal(1,1) |
decimal(10) |
decimal(100,100) |
decimal(10) |
decimal |
tinyint\(1\) |
tinyint(1) |
||||
int\([1-8]\) |
int(1) |
int(2) |
int(3) |
int(8) |
int(9) |
`int((9 |
\d{2,}))` |
int(9) |
int(10) |
int(123) |
int(999) |
Java正则表达式:https://www.runoob.com/java/java-regular-expressions.html
自定义模板
动图教程
说明
- 编写模板时下面配有说明文档,注意查看。
- 编写时可以实时调式。
- 不推荐编辑默认模板,可以复制一个分组进行编辑。(点击分组右边的复制图标或新增图片)
- 添加模板时名称尽量带扩展名,如entity.java 这样可以实现代码语法高亮。
Velocity模板引擎语法:https://www.cnblogs.com/yangzhinian/p/4885973.html
使用全局变量
说明
- 全局变量可以在设置中的Other Settings->Easy Code->Global Config中找到。
- 例如添加一个全局变量名称为demo值为Hello,那么就可以在任意模板中通过$!demo去使用这个全局变量。当然通常并不会这么使用,而是使用velocity语法中的#set来完成。
- 全局变量主要是用来定义宏(velocity宏定义),或者用来编写一大段重复代码。
- 全局变量的命名很重要,千万不能与模板中的任意变量名冲突。不然会被替换。
简单的来说全局变量就是一个自定义变量,至于怎么玩那就要看个人了。
将配置导出到本地
动图教程
说明
- 该导出方式为IDEA自带方式导出,将会导出EasyCode的所有配置。
- 可以通过File菜单下的Import Settings选项导入配置。(如果只导出了EasyCode的配置,则只覆盖EasyCode的所有配置。如果存在其他配置,则其他配置也会被覆盖)
- 通常用于保存长期不变的配置到本地文件,防止丢失。
导入配置
动图教程
说明
- 可以通过Easy Code自带的导入导出功能实现模板同步。(导出后将token发给需要同步的电脑导入即可)。
- 导出可以选择需要导出的分组(这就是与IDEA自带导出不同的地方)。
- 导入也可以选择是否需要覆盖分组。
- 注意:token是有有效期的。
重置默认设置
说明
- 重置默认设置可以在设置中的Other Settings->Easy Code中找到。(右上角位置)
- 重置默认设置只会重置Easy Code自带的分组内容,不会重置用户新增的分组。(这就是建议不要使用默认分组的原因)
- 作用:Easy Code版本更新时会对默认分组的信息进更改,但是为了保证不覆盖用户的配置,所以更新版本后需要用户手动重置默认设置才能看到最新的模板信息。
统一配置
说明
- 统一配置只有在多表生成时才有效。
状态 |
使用当前配置 |
使用自身配置 |
保存当前配置 |
不勾选统一配置 |
未配置的表 |
已配置的表 |
未配置的表 |
勾选统一配置 |
未配置的表+已配置的表 |
无 |
未配置的表 |
解释:
- 已配置的表:生成过代码的表。
- 未配置的表:从未生成过代码的表。
版本控制同步表配置
大部分合作开发环境都会使用Git、SVN等版本控制工具,那么在这种情况下如何同步表的配置信息呢?只需要将.idea/EasyCodeConfig文件夹排除忽略添加至版本控制中就可以完成同步配置了。
注意:这里所说的配置并不是模板配置,而是针对每张表的配置,后面会做介绍。
EasyCode使用debug
动图教程
说明
- 通过tool.debug方法可以调试任意对象。
- 通过调试可以查看到对象的所有属性和所有public方法。
- 通过tool.getField方法可以获取到对象任意属性,包括private属性。
- 作用:不清楚内部结构的对象都可以通过debug功能来查询。
在表中添加附加列
动图教程
说明
- 自定义附加列与数据库的列无关
- 自定义附加列不存在obj对象(原始对象)
- columnInfo.custom 标记是否为自定义附加列,例如生成XML时不需要附加列,可以通过该属性进行排除。
- 注意:由于JSwing中的table编辑框必须失去焦点才能正常保存值,所以编辑完毕后需要将光标移动到别的位置上。然后再点击确认才能正常保存。
- 作用:通常实体类会有一些数据库里面没有的属性,如果手动添加这些属性每次重新生成代码时这些属性就会被消除掉。又需要重新手动去添加,自定义附加列就是专门用于解决这类问题的。
在列上添加附加属性
动图教程
说明
- 自定义附加属性支持3中类型:复选框、文本框、下拉选择框
- 注意:由于JSwing中的table编辑框必须失去焦点才能正常保存值,所以编辑完毕后需要将光标移动到别的位置上。然后再点击确认才能正常保存。
- 作用:
例一:如用于生成DTO代码,有的属性不需要生成,通过自定义属性标记一些。然后在模板里面写一些排除代码即可完成。
例二:如果用于生成HTML代码,有的表单只需要新增属性(标记一下),有的表单只需要更新属性(标记一下),模板里面统一处理这些标记。即可到达想要的代码。
类型 |
selectValue |
type |
复选框 |
不支持 |
BOOLEAN |
文本框 |
不支持 |
TEXT |
下拉选择框 |
英文逗号分割可选项 |
SELECT |
手动修改EasyCode配置
- 每张生成过代码的表都会在.idea/EasyCodeConfig文件夹下有一个对应的配置文件。
- 每个配置文件里面都配置着表的各个属性,可以随意删除(删除后重新生成代码会重新出现,但是配置会丢失)。
- 配置为null的属性会动态的从数据库中抓取。
- 相信你都看到这里了,这个配置文件还是可以一目了然的。毕竟Easy Code的可扩展性太强了,使用骚操作难免会出问题。遇到问题时可以看看能不能手动改一改这里来解决。