十二、实体代码生成器
十二、实体代码生成器
这里借鉴mybatis的实体生成器想法,根据jdbc中数据库字段和java类的映射,来生成对应的实体,我们这里有别于mybatis,对一些枚举类型做了特殊处理,对于公共的一些枚举类型,这里及进行抽离了出来。我们首先看下怎么生成实体。
@Test
public void test1(){
EntityCodeGen codeGen = new EntityCodeGen()
// 数据库信息
.setDb("neo_test", "neo@Test123", "jdbc:mysql://127.0.0.1:3306/neo?useUnicode=true&characterEncoding=UTF-8&useSSL=false")
// 设置项目路径
.setProjectPath("/Users/xxx/xxx/Neo")
// 设置实体生成的包路径
.setEntityPath("com.simonalong.neo.entity")
// 设置表前缀过滤
.setPreFix("neo_")
// 设置要排除的表
//.setExcludes("xx_test")
// 设置只要的表
.setIncludes("neo_table3", "neo_table4")
// 设置属性中数据库列名字向属性名字的转换,这里设置下划线,比如:data_user_base -> dataUserBase
.setFieldNamingChg(NamingChg.UNDERLINE);
// 代码生成
codeGen.generate();
}1.生成实体
根据上面的配置即可在对应的位置生成对应的实体结构。比如包含所有字段的表如下
生成的结构
2.抽离公共枚举
对于表中有枚举类型的话,则会先看是否已经有对应的枚举类了,如果有,则不生成,如果有同名的枚举类,但是枚举类型又不同,则会生成内部的枚举类。 表1:(关注其中的枚举类型)
表2:(关注其中的枚举类型)
两个表都是有对应的枚举类型,枚举类型名字相同,则在进行生成的时候,两个一起的话,则先生成的对应的枚举会是公共的,而后者是内部的,如下:
注意: 其中对于枚举类型的注释,这里采用解析字段的remark字段,格式为:
描述:A=xx;B=xxx
其中描述和后面分隔采用冒号,中文的":"和英文":"的均可,类型之间用分号";"和";"都可以
Last updated
Was this helpful?