EasyCode/README.md

160 lines
6.7 KiB
Markdown
Raw Normal View History

2018-01-10 20:42:26 +08:00
# EasyCode
2018-07-24 18:09:04 +08:00
### EasyCode能做什么
EasyCode是基于IntelliJ IDEA Ultimate版开发的一个代码生成插件主要通过自定义模板基于velocity来生成各种你想要的代码。通常用于生成Entity、Dao、Service、Controller。如果你动手能力强还可以用于生成HTML、JS、PHP等代码。理论上来说只要是与数据有关的代码都是可以生成的。
### 使用环境
`IntelliJ IDEA Ultimate版172+`
### 支持的数据库类型
因为是基于Database Tool开发所有Database Tool支持的数据库都是支持的。
包括如下数据库:
1. MySQL
2. SQL Server
3. Oracle
4. PostgreSQL
5. Sqlite
6. Sybase
7. Derby
8. DB2
9. HSQLDB
10. H2
当然支持的数据库类型也会随着Database Tool插件的更新同步更新。
2018-07-19 15:12:43 +08:00
### 功能说明:
* 支持多表同时操作
2018-07-24 18:09:04 +08:00
* 支持同时生成多个模板
2018-07-19 15:12:43 +08:00
* 支持自定义模板
* 支持自定义类型映射(支持正则)
* 支持自定义扩展属性
* 支持对表属性进行手动配置
* 所有配置项目支持分组模式,在不同项目(或选择不同数据库时),只需要切换对应的分组,所有配置统一变化。
### 安装方法
2018-08-01 15:02:23 +08:00
* 该插件已成功添加到官网插件仓库中,现在可以直接在搜索框搜索安装。
2018-07-19 15:12:43 +08:00
* 手动安装方法如下:
2018-07-24 18:09:04 +08:00
1. [ **点击这里** ](../../releases),下载最新的发行版本。
2018-07-19 15:12:43 +08:00
2. 然后进入到File->Settings->Plugins,点击Install plugin from disk...
![输入图片说明](https://images.gitee.com/uploads/images/2018/0719/143320_ac3b91d7_920085.png "安装插件")
3. 找到你下载好的安装包即可安装
4. 安装完后重启即可
2018-07-24 18:09:04 +08:00
2018-07-27 11:31:32 +08:00
### 仓库直接安装
由于官网审核较慢,通常会比发行版慢两天更新
安装方法手写点击Browse repositories... 搜索 Easy Code
**注意请认准5颗星的Easy Code两颗星的是我之前发布的老版本由于账号丢失不再更新维护**
![输入图片说明](https://images.gitee.com/uploads/images/2018/0727/112706_19564a38_920085.png "屏幕截图.png")
2018-07-24 18:09:04 +08:00
2018-07-19 15:12:43 +08:00
### 使用方法
2018-07-24 18:09:04 +08:00
1. 简单的生成代码
首先在IDEA右边找到数据库工具点击加号添加好对应的数据源
2018-07-19 15:12:43 +08:00
接着在要生成表上面右键就可以看到EasyCode菜单以及子菜单Generate Code,Config Table生成代码与配置表。
2018-07-27 23:11:22 +08:00
![输入图片说明](../../raw/master/%E6%95%99%E7%A8%8B%E5%9B%BE%E7%89%87/%E5%8D%95%E8%A1%A8%E4%BB%A3%E7%A0%81%E7%94%9F%E6%88%90.gif "单表代码生成.gif")
2018-07-19 15:12:43 +08:00
2018-07-27 11:31:32 +08:00
2. 多表代码生成
可以按住Ctrl键同时选择多张表进行操作。
2018-07-19 15:12:43 +08:00
2018-07-27 11:31:32 +08:00
**注意:多选的情况下配置信息取首选表(选中的第一张表)。**
2018-07-19 15:12:43 +08:00
2018-07-27 23:11:22 +08:00
![输入图片说明](../../raw/master/%E6%95%99%E7%A8%8B%E5%9B%BE%E7%89%87/%E5%A4%9A%E8%A1%A8%E4%BB%A3%E7%A0%81%E7%94%9F%E6%88%90.gif "多表代码生成.gif")
2018-07-19 15:12:43 +08:00
2018-07-27 11:31:32 +08:00
**统一配置解释:勾选代表所有选中表统一用这个配置去生成代码,否则只有没配置过表的使用这个配置生成,已配置的使用自己的配置。**
2018-07-19 15:12:43 +08:00
2018-07-27 11:31:32 +08:00
**(注意:没配置过的表在生成代码后都会复用该配置,成为已配置的表)**
2018-07-19 15:12:43 +08:00
2018-07-29 10:01:29 +08:00
### 添加类型映射
2018-07-19 15:12:43 +08:00
在Other Seeting中可以看到如下配置信息上面部分是分组信息可以复制分组删除分组。
下面的表格是类型映射信息左边是数据库类型支持正则右边是对应的java类型必须为全称。可以新增删除
2018-07-29 10:01:29 +08:00
![输入图片说明](../../raw/master/%E6%95%99%E7%A8%8B%E5%9B%BE%E7%89%87/%E6%B7%BB%E5%8A%A0%E7%B1%BB%E5%9E%8B%E6%98%A0%E5%B0%84.gif "添加类型映射.gif")
2018-07-19 15:12:43 +08:00
### 模板配置说明
2018-08-07 11:14:05 +08:00
采用velocity语法编写
2018-07-19 15:12:43 +08:00
![输入图片说明](https://images.gitee.com/uploads/images/2018/0719/150307_7f96fb68_920085.png "屏幕截图.png")
说明文档:
```
属性
2018-07-31 09:19:44 +08:00
$packageName 选择的包名(String)
$author 设置中的作者(String)
$encode 设置的编码(String)
$modulePath 选中的module路径(String)
$projectPath 项目路径(String)
2018-07-19 15:12:43 +08:00
对象
2018-07-31 09:19:44 +08:00
$tableInfo 表对象(TableInfo)
obj 表原始对象(DasColumn,下面有贴图)
name 表名(转换后的首字母大写)(String)
comment 表注释(String)
fullColumn 所有列(List<ColumnInfo>)
pkColumn 主键列(List<ColumnInfo>)
otherColumn 其他列(List<ColumnInfo>)
savePackageName 保存的包名(String)
savePath 保存路径(String)
saveModelName 保存的model名称(String)
columnInfo 列对象(ColumnInfo)
obj 列原始对象(DbTable,下面有贴图)
name 列名(首字母小写)(String)
comment 列注释(String)
type 列类型(类型全名)(String)
ext 附加字段Map类型(Map<String,Object>)
$tableInfoList 所有选中的表(List<TableInfo>)
$importList 所有需要导入的包集合(Set<String>)
2018-07-19 15:12:43 +08:00
回调
&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
```
2018-07-31 09:19:44 +08:00
![输入图片说明](https://images.gitee.com/uploads/images/2018/0731/091559_94caf1b3_920085.png "屏幕截图.png")
![输入图片说明](https://images.gitee.com/uploads/images/2018/0731/091758_3a8d8994_920085.png "屏幕截图.png")
2018-07-19 15:12:43 +08:00
### 高级货在这里
2018-07-24 18:09:04 +08:00
在这里添加自定义属性,这些属性都是可以动态配置的,而且还可以在模板中获取到这个属性。
这里的关系都是一一对应的例如如果配置了disabled属性就可以在columnInfo.ext中拿到你设置的值如:columnInfo.ext.disabled
2018-07-19 15:12:43 +08:00
2018-07-27 23:11:22 +08:00
![输入图片说明](../../raw/master/%E6%95%99%E7%A8%8B%E5%9B%BE%E7%89%87/%E8%87%AA%E5%AE%9A%E4%B9%89%E6%89%A9%E5%B1%95%E5%B1%9E%E6%80%A7.gif "自定义扩展属性.gif")
2018-07-19 15:12:43 +08:00
2018-07-24 18:09:04 +08:00
### 配置信息储存在哪里?
2018-07-19 15:12:43 +08:00
使用版本控制的开发人员可加这些信息不要添加至忽略(以便共享配置信息)
2018-08-01 15:02:23 +08:00
软件处于1.1.1版难免会出现问题,手动修改这里可能可以解决一些问题,请谅解。
2018-07-19 15:12:43 +08:00
![输入图片说明](https://images.gitee.com/uploads/images/2018/0719/150823_ffc482f0_920085.png "屏幕截图.png")
2018-07-27 11:31:32 +08:00
### :sunglasses: 更多玩法就需要自己摸索了By makejava。
2018-08-01 12:29:00 +08:00
2018-08-02 14:57:55 +08:00
#### QQ群[373603580](https://shang.qq.com/wpa/qunwpa?idkey=4d495321e527ec2ce459c0d0d6320414cd9677d92d5287df831d4e1c4ec09740)