6.1 KiB
EasyCode
EasyCode能做什么?
EasyCode是基于IntelliJ IDEA Ultimate版开发的一个代码生成插件,主要通过自定义模板(基于velocity)来生成各种你想要的代码。通常用于生成Entity、Dao、Service、Controller。如果你动手能力强还可以用于生成HTML、JS、PHP等代码。理论上来说只要是与数据有关的代码都是可以生成的。
使用环境
IntelliJ IDEA Ultimate版(172+)
支持的数据库类型
因为是基于Database Tool开发,所有Database Tool支持的数据库都是支持的。
包括如下数据库:
- MySQL
- SQL Server
- Oracle
- PostgreSQL
- Sqlite
- Sybase
- Derby
- DB2
- HSQLDB
- H2
当然支持的数据库类型也会随着Database Tool插件的更新同步更新。
功能说明:
- 支持多表同时操作
- 支持同时生成多个模板
- 支持自定义模板
- 支持自定义类型映射(支持正则)
- 支持自定义扩展属性
- 支持对表属性进行手动配置
- 所有配置项目支持分组模式,在不同项目(或选择不同数据库时),只需要切换对应的分组,所有配置统一变化。
安装方法
- 该插件正在添加到官网插件仓库中,现在只能手动安装,添加完毕后直接在搜索框搜索安装。
- 手动安装方法如下:
- 点击这里 ,下载最新的发行版本。
- 然后进入到File->Settings->Plugins,点击Install plugin from disk...
- 找到你下载好的安装包即可安装
- 安装完后重启即可
仓库直接安装
由于官网审核较慢,通常会比发行版慢两天更新
安装方法:手写点击Browse repositories... 搜索 Easy Code
注意:请认准5颗星的Easy Code,两颗星的是我之前发布的老版本(由于账号丢失,不再更新维护)
使用方法
- 简单的生成代码
首先在IDEA右边找到数据库工具,点击加号添加好对应的数据源
接着在要生成表上面右键,就可以看到EasyCode菜单,以及子菜单(Generate Code,Config Table)生成代码与配置表。
- 多表代码生成 可以按住Ctrl键同时选择多张表进行操作。
注意:多选的情况下配置信息取首选表(选中的第一张表)。
统一配置解释:勾选代表所有选中表统一用这个配置去生成代码,否则只有没配置过表的使用这个配置生成,已配置的使用自己的配置。
(注意:没配置过的表在生成代码后都会复用该配置,成为已配置的表)
添加类型映射
在Other Seeting中可以看到如下配置信息,上面部分是分组信息,可以复制分组,删除分组。
下面的表格是类型映射信息:左边是数据库类型(支持正则),右边是对应的java类型(必须为全称)。可以新增删除
模板配置说明
采用velocit语法编写
说明文档:
属性
$packageName 选择的包名
$author 设置中的作者
$encode 设置的编码
$modulePath 选中的module路径
$projectPath 项目路径
对象
$tableInfo 表对象
obj 表原始对象
name 表名(转换后的首字母大写)
comment 表注释
fullColumn 所有列
pkColumn 主键列
otherColumn 其他列
savePackageName 保存的包名
savePath 保存路径
saveModelName 保存的model名称
columnInfo 列对象
obj 列原始对象
name 列名(首字母小写)
comment 列注释
type 列类型(类型全名)
ext 附加字段(Map类型)
$tableInfoList 所有选中的表
$importList 所有需要导入的包集合
回调
&callback
setFileName(String) 设置文件储存名字
setSavePath(String) 设置文件储存路径,默认使用选中路径
工具
$tool
firstUpperCase(String) 首字母大写方法
firstLowerCase(String) 首字母小写方法
getClsNameByFullName(String) 通过包全名获取类名
getJavaName(String) 将下划线分割字符串转驼峰命名(属性名)
getClassName(String) 将下划线分割字符串转驼峰命名(类名)
append(... Object) 多个数据进行拼接
$time
currTime(String) 获取当前时间,指定时间格式(默认:yyyy-MM-dd HH:mm:ss)
高级货在这里
在这里添加自定义属性,这些属性都是可以动态配置的,而且还可以在模板中获取到这个属性。
这里的关系都是一一对应的,例如:如果配置了disabled属性就可以在columnInfo.ext中拿到你设置的值(如:columnInfo.ext.disabled)
配置信息储存在哪里?
使用版本控制的开发人员可加这些信息不要添加至忽略(以便共享配置信息)
软件处于1.0版难免会出现问题,手动修改这里可能可以解决一些问题,请谅解。