ibatis代码自动生成工具ibator修改备忘
由于对ibator了解的不够深入,毅然决然的开始了修改ibator插件的过程,修改的过程收获很大,了解了这个插件的诸多使用技巧。
1.自动生成的代码中的讨厌的Example怎么改名?
这个也是驱动我去修改ibator plugin的原动力,因为我懒,不想每次生成代码以后再去替换Example单词,使用UltraEditor自动把Ibator源程序中的所有Example都替换了,替换完以后才发现,ibator插件可以自动帮我们替换,配置一个参数就可以了,汗啊。替换内容如下:
2.既然动手改了,就把看着不顺眼的地方统统的改掉吧,以下是便于日后再想改的时候要看的内容:
代码注释在org.apache.ibatis.ibator.internal这个package下的DefaultCommentGenerator.java中,可以把英文的注释改成中文的,但是sqlmap中的注释不能直接改中文,因为sqlmap.xml文件时utf-8编码的,直接写入中文注释会出现乱码的情况。
在org.apache.ibatis.ibator.config这个package下的MergeConstants.java中包含有代码注解中的某些单词,可以考虑修改。
3.下面是从别人的博客转过来的内容:
1、Abator生成Java类文件时,根据注释区分属性和方法是系统生成或用户自定义,以此决定保留或者覆写.
2、Abator生成SQLMap的xml文件时,根据元素id是否包含前缀 ibatorgenerated_ 区分元素是系统
生成或用户自定义,以此决定保留或者覆写.。
3、注意ibatorConfig.xm 文件中节点的顺序
4、生成的数据对象
Primary Key Class 主键的所有组成字段在一个类中
Record Class 非主键字段非BLOB字段组成的类,继承于Primary Key Class
Record With BLOBs Class 所有BLOB字段组成的类,继承于Record Class (如不存在),就会继承Primary Key Class
不支持只包含BLOB字段的表。
Example Class 用于生成动态where条件的类
5、example Class 使用(可以使用逻辑运算的结合律简化where条件)
代码:
TestTableExample example = new TestTableExample();
example.createCriteria().andField1EqualTo(5);
产生条件:
where field1 = 5
代码:
TestTableExample example = new TestTableExample();
example.createCriteria()
.andField1EqualTo(5)
.andField2IsNull();
example.or(example.createCriteria()
.andField3NotEqualTo(9)
.andField4IsNotNull());
List
field5Values.add(8);
field5Values.add(11);
field5Values.add(14);
field5Values.add(22);
example.or(example.createCriteria()
.andField5In(field5Values));
example.or(example.createCriteria()
.andField6Between(3, 7));
产生条件:
where (field1 = 5 and field2 is null)
or (field3 <> 9 and field4 is not null)
or (field5 in (8, 11, 14, 22))
or (field6 between 3 and 7)
6、ibatorConfig.xm 文件分析