idea自动生成代码神器EasyCode

EasyCode是基于IntelliJ IDEA开发的代码生成插件,支持自定义任意模板(Java,html,js,xml)。只要是与数据库相关的代码都可以通过自定义模板来生成。支持数据库类型与java类型映射关系配置。支持同时生成生成多张表的代码。每张表有独立的配置信息。完全的个性化定义,规则由你设置。

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插件的更新同步更新。

功能说明:

  • 支持多表同时操作
  • 支持同时生成多个模板
  • 支持自定义模板
  • 支持自定义类型映射(支持正则)
  • 支持自定义扩展属性
  • 支持对表属性进行手动配置
  • 所有配置项目支持分组模式,在不同项目(或选择不同数据库时),只需要切换对应的分组,所有配置统一变化。

功能对比:

功能Easy Code其他工具
自定义模板支持支持
多表生成支持支持
生成方式无缝集成在项目中部分工具需要复制粘贴
附加列支持不支持
附加列属性支持不支持
动态调试模板支持不支持
图形化界面支持部分支持
使用环境仅限IDEA支持各种形式
在线支持后期扩展不支持
自定义类型映射支持部分支持
全局变量支持不支持
支持的数据库10余种1-4种

1.安装教程

在这里插入图片描述

2.功能展示

2.1简单的生成代码

首先在IDEA右边找到数据库工具,点击加号添加好对应的数据源

接着在要生成表上面右键,就可以看到EasyCode菜单,以及子菜单(Generate Code,Config Table)生成代码与配置表。

在这里插入图片描述

2.2多表代码生成 可以按住Ctrl键同时选择多张表进行操作。

注意:多选的情况下配置信息取首选表(选中的第一张表)。

在这里插入图片描述

2.3添加类型映射

在Other Seeting中可以看到如下配置信息,上面部分是分组信息,可以复制分组,删除分组。

下面的表格是类型映射信息:左边是数据库类型(支持正则),右边是对应的java类型(必须为全称)。可以新增删除

注意:

( )是正则表达式中的关键字,需要转义成

在这里插入图片描述

2.4添加自定义属性

在这里添加自定义属性,这些属性都是可以动态配置的,而且还可以在模板中获取到这个属性。

这里的关系都是一一对应的,例如:如果配置了disabled属性就可以在columnInfo.ext中拿到你设置的值

注意:table编辑框需要失去焦点才能正常保存(属于IDEA自身BUG)。

属性:

属性
$author 设置中的作者 java.lang.String
$modulePath 选中的module路径 java.lang.String
$projectPath 项目绝对路径 java.lang.String

对象
$tableInfo 表对象
    obj 表原始对象 com.intellij.database.model.DasTable
    name 表名(转换后的首字母大写)java.lang.String
    comment 表注释 java.lang.String
    fullColumn 所有列 java.util.List<ColumnInfo>
    pkColumn 主键列 java.util.List<ColumnInfo>
    otherColumn 其他列 java.util.List<ColumnInfo>,除主键以外的列
    savePackageName 保存的包名 java.lang.String
    savePath 保存路径 java.lang.String
    saveModelName 保存的model名称 java.lang.String
columnInfo 列对象
    obj 列原始对象 com.intellij.database.model.DasColumn
    name 列名(首字母小写) java.lang.String
    comment 列注释 java.lang.String
    type 列类型(类型全名) java.lang.String
    shortType 列类型(短类型) java.lang.String
    custom 是否附加列 java.lang.Boolean
    ext 附加字段(Map类型) java.lang.Map<java.lang.String, java.lang.Object>
$tableInfoList java.util.List<TableInfo>所有选中的表
$importList 所有需要导入的包集合 java.util.Set<java.lang.String>

回调
&callback 回调对象
    setFileName(String) 设置文件储存名字
    setSavePath(String) 设置文件储存路径,默认使用选中路径
    setReformat(Boolean) 设置是否重新格式化生成后的代码,默认为true

工具
$tool
    firstUpperCase(String name) 首字母大写方法
    firstLowerCase(String name) 首字母小写方法
    getClsNameByFullName(String fullName) 通过包全名获取类名
    getJavaName(String name) 将下划线分割字符串转驼峰命名(属性名)
    getClassName(String name) 将下划线分割字符串转驼峰命名(类名)
    hump2Underline(String str) 将驼峰字符串转下划线字符串
    append(Object... objs) 多个数据进行拼接
    newHashSet(Object... objs) 创建一个HashSet对象
    newArrayList(Object... objs) 创建一个ArrayList对象
    newLinkedHashMap() 创建一个LinkedHashMap()对象
    newHashMap() 创建一个HashMap()对象
    getField(Object obj, String fieldName) 获取对象的属性值,可以访问任意修饰符修饰的属性.配合debug方法使用.
    call(Object... objs) 空白执行方法,用于调用某些方法时消除返回值
    debug(Object obj) 调式方法,用于查询对象结构.可查看对象所有属性与public方法
    serial() 随机获取序列化的UID
    service(String serviceName, Object... param)远程服务调用
    parseJson(String) 将字符串转Map对象
    toJson(Object, Boolean) 将对象转json对象,Boolean:是否格式化json,不填时为不格式化。
    toUnicode(String, Boolean) 将String转换为unicode形式,Boolean:是否转换所有符号,不填时只转换中文及中文符号。
$time
    currTime(String format) 获取当前时间,指定时间格式(默认:yyyy-MM-dd HH:mm:ss)
$generateService
    run(String, Map<String,Object>) 代码生成服务,参数1:模板名称,参数2:附加参数。
$dasUtil Database提供的工具类,具体可方法请查看源码,适用于高端玩家
$dbUtil  Database提供的工具类,具体可方法请查看源码,适用于高端玩家

上面说的生成代码时,实体类里面的toString没有需要自己配置:

@Override
public String toString() {
    return "$tableInfo.name{" + 
       #foreach($column in $tableInfo.fullColumn)
       ", $column.name=" + $column.name +
#end
   '}';
}

在这里插入图片描述
把上面代码复制到这里就行了
在这里插入图片描述

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值