前言
在公众号里看到的一篇标题为"恕我直言,有了这款IDEA插件,你可能只需要写30%的代码…"的文章,有点兴趣,就点进去看了看,操作也都比较简单,于是自己也尝试了一下,创建数据库,创建表,毫不费功夫的一套代码都生成出来了,不过生成的代码dao层是按照mybatis来的,大多都是使用mybatis,直接就能用了,而我项目中是使用hibernate的,这实体类的代码要调整,dao层代码需要改,上面文章里没提到这块,在生成代码那块操作里也没找到相关设置的功能,趁着兴趣还没消退就百度了一下,随手点了这篇文章"IDE工具(23) EasyCode代码生成器的使用教程(idea安装配置)"翻了一翻,安装,操作步骤基本都一样,但里面多了设置模板的内容,好吧新的大门已打开,根据上面大佬的链接又翻了EasyCode的文档,了解了Velocity模板引擎语法,然后参考默认模板内容写了一套适用自己的模板。
正文
1、安装(EasyCode)(我本机已安装过,安装后注意需要重启idea)
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiAzNfRHLGZkRGZkRfJ3bs92YsYTMfVmepNHLxEFVPp3Zq1EeRpHW4Z0MMBjVtJWd0ckW65UbM5WOHJWa5kHT20ESjBjUIF2X0hXZ0xCMx81dvRWYoNHLrdEZwZ1Rh5WNXp1bwNjW1ZUba9VZwlHdssmch1mclRXY39CXldWYtlWPzNXZj9mcw1ycz9WL49zZuBnL5MTM1ETOyQTMxIjMwAjMwIzLc52YucWbp5GZzNmLn9Gbi1yZtl2Lc9CX6MHc0RHaiojIsJye.png)
2、创建数据库和表(注意表 字段 要使用下划线对应实体类的驼峰命名规则)
EasyCode代码生成器的使用
3、连接数据库
注意选择对应的数据,填写相应端口和数据库名称
4、生成代码(选择数据表点击鼠标右键 --> EasyCode–>Generate Code)
勾选需要生成的代码
基本上这样就都搞定了
5、自定义代码模板(file–>settings–>other settings)
新建一个组来存放自定义模板
新建模板
自定义实体类模板代码(在默认模板的基础上做的一些小改动,也就是导入一些需要用到的包,加了一些注解,在遍历字段的时候判断是否是主键,设置了主键的生成策略)
##引入宏定义
$!define
##使用宏定义设置回调(保存位置与文件后缀)
#save("/entity", ".java")
##使用宏定义设置包后缀
#setPackageSuffix("entity")
##使用全局变量实现默认包导入
$!autoImport
import java.io.Serializable;
##@Entity、@Table注解的包
import javax.persistence.*;
##使用宏定义实现类注释信息
#tableComment("实体类")
@Entity
@Table(name="$!{tableInfo.name}")
public class $!{tableInfo.name} implements Serializable {
private static final long serialVersionUID = $!tool.serial();
## 获取主键(一般主键都是实体类名+Id)
#set($id= "$tool.firstLowerCase($!{tableInfo.name})Id")
## 遍历字段
#foreach($column in $tableInfo.fullColumn)
## 判断是否是主键(因为主键有生成策略要设定)
#if(${column.name}==$!{id})
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY )
@Column(name = "$!{column.name}", nullable = false)
private $!{tool.getClsNameByFullName($column.type)} $!{column.name} ;
#else
@Basic
@Column(name = "$!{column.name}",nullable = true)
private $!{tool.getClsNameByFullName($column.type)} $!{column.name} ;
#end
#end
#foreach($column in $tableInfo.fullColumn)
##使用宏定义实现get,set方法
#getSetMethod($column)
#end
}
我构建了自己使用的一套模板,其他的模板代码我就不贴了,因为只是把默认的模板拷过来在上面结合自己的使用做一些调整也没啥难度。我本想把一些配置文件也加进去的,但生成的目录有些问题,由于时间关系后面再研究吧。