EasyCode代码⽣成器,超详细安装和⽣成模板
EasyCode代码⽣成器,超详细安装和⽣成模板
⼀、常见的模板
1.velocity,默认模板的后缀vm
2.freemarker,默认模板的后缀ftli
⼆、模板技术可以实现的功能
1.动态页⾯静态化
2.⽤作发送邮件、短信模板
3.代码⽣成器
三、代码⽣成器
使⽤了代码⽣成器就是先定义好模板,然后使⽤代码⾃动修改类名,有代码参照模板进⾏指定内容⾃动替换。
1.准备模板(把每个模块需要改的地⽅确定好)
2. 确定所有模板的⽣成顺序
3. 确定所有模板的⽣成位置
4.确定要⽣成的基本功能的domain
5. 根据Domain名称与模板结合,在相应位置⽣成⽂件
6. 解决如果⽗⽂件夹不存在的问题
7. 解决如果⽂件已经存在的问题
8.排错(有错先改模板)
⼤概思路是这样的,如果想学习相关操作配置,我会在以后的⽂章中详解。今天讲的是⼀个插件EasyCode。
四、EasyCode
EasyCode是基于IntelliJ IDEA开发的代码⽣成插件,⽀持⾃定义任意模板(Java,html,js,xml)。只要是与数据库相关的代码都可以通过⾃定义模板来⽣成。⽀持数据库类型与java类型映射关系配置。⽀持同时⽣成⽣成多张表的代码。每张表有独⽴的配置信息。完全的个性化定义,规则由你设置。
前提:你要会Velocity!!
EasyCode能做什么?
EasyCode是基于IntelliJ IDEA Ultimate版开发的⼀个代码⽣成插件,主要通过⾃定义模板(基于velocity)来⽣成各种你想要的代码。通常⽤于⽣成Entity(domain)、Dao、Service、Controller。如果你动⼿能⼒强还可以⽤于⽣成HTML、JS、PHP等代码。理论上来说只要是与数据有关的代码都是可以⽣成的。
相关信息请参考官⽅⽂档
安装EasyCode
1、在线安装
File---&
2、离线安装
3、添加数据源
选择你⽤的数据库
输⼊你数据库的⽤户和密码
选择要操作的数据库
1、创建模板之前,要先写好⼀个类的各层实现。
//以domain为例
##引⼊宏定义
$!define
##使⽤宏定义设置回调(保存位置与⽂件后缀)
/*设置domain⽣成的位置
src以下的项⽬名/domain
.java  ⽣成的⽂件类型
*/
#save("/main/java/xxx/domain",".java")
##使⽤宏定义设置包后缀
//⽣成的类最开始引⼊包的名字package xxx.domain;
#setPackageSuffix("domain")
##使⽤全局变量实现默认包导⼊
$!autoImport//⾃动导包好像不够⾃动,所以⾃⼰导公共包
import javax.persistence.*;
##使⽤宏定义实现类注释信息
#tableComment("实体类")//注释不管
@Entity
@Table(name="$!{tableInfo.obj.name}")
//tableInfo.obj.name获得实体类 (⾸字母⼩写)
public class $!{tableInfo.name}extends BaseDomain {
//tableInfo.name 获得实体类 (⾸字母⼤写)
#foreach($column in $herColumn)
//遍历除主键的属性
#if(${columnment})//${columnment}#end
private $!{ClsNameByFullName($pe)} $!{column.name};
//获得实体类中属性  column.name
#end
#foreach($column in $herColumn)
##使⽤宏定义实现get,set⽅法
#getSetMethod($column)
#end
}
2、后序
其他层也可以这样改,具体属性代表什么,安装好easy code后,在Template Sertting下都可以查询,建议安装最新版,获得类名的⼤写和⼩写⽅便
2.1 save("/main/java/xxx/domain", “.java”) 设置domain⽣成的位置,src以下的项⽬名/domain ,.java ⽣成的⽂件类型
2.2 ⽣成的类最开始引⼊包的名字packagexxx.domain;setPackageSuffix(“domain”)
2.3 tableInfo.obj.name获得实体类 (⾸字母⼩写)
免费模板生成器2.4 获得实体类 (⾸字母⼤写)
2.5 #foreach($column in $herColumn) #end
2.6 获得实体类中属性
体类 (⾸字母⼩写)
2.4 获得实体类 (⾸字母⼤写)
2.5 #foreach($column in $herColumn) #end
2.6 获得实体类中属性