标签:
这两天没什么事 把MyBatis-Genrator(MBG) mybatis官方提供的代码生成工具改造下了。
先说下主要改造的功能:
1.生成的实体类属性与类声明间空一行。
2.生成的实体类中,属性间没有空行(去掉空行),采用紧凑格式。原来的生成的属性间有空行
3.默认生成的示例代码,去掉。
通常要去掉生成的一堆示例代码,就需要我们使用生成器的时候,在generatorConfig.xml中,每个table 标签中配置以下属性,才能去掉生成的示例代码。
<table tableName="t_customer" domainObjectName="Customer" enableCountByExample="false" enableDeleteByExample="false" enableSelectByExample="false" enableUpdateByExample="false" selectByExampleQueryId="false"> </table>
我对源码做了修改后,就不需要配置这些东西了。只需要写最基本的配置,提供表名和生成的实体类 类名就可以了
<table tableName="t_orders" domainObjectName="Orders"> </table>
MBG的注释,只有全局的配置。要么都生成,要么都不生成(还会生成xml的注释,getter/setter方法的注释),生成的注释也不合我们的要求。
<!-- 是否去除自动生成的注释 true:是 : false:否 --> <propertyname="suppressAllComments"value="true"/>
我们肯定要生成注释的,所以不作以上的配置。或者配置为false(生成注释)。对生成的注释的规则格式我们作了改造。
4.Java类中,添加公司版权信息注释
这块注释现在是写死在代码里的,后面把这块提出来。因为每个公司的版权信息相关的内容都不一样。
5.Java类中,类声明上的注释,类注释
6.实体类属性注释
要想自动生成 实体类的属性注释,必须要相关的表中,加上注释项才可以 在生成的时候获取到
CREATE TABLE t_customer ( id int(10) NOT NULL AUTO_INCREMENT COMMENT ‘主键‘, name varchar(30) NOT NULL COMMENT ‘客户名称‘, cell_phone varchar(30) NOT NULL COMMENT ‘联系电话‘, PRIMARY KEY (id) ) ENGINE=InnoDB AUTO_INCREMENT=55 DEFAULT CHARSET=utf8;
表中加入了注释项以后,来看生成的实体类代码
7.getter/setter方法上的注释 去除
8.普通方法注释
方法的描述信息是什么,肯定要自己加了
9.生成的映射文件原来缩进2个空格,改为缩进 4个空格
10.去除xml映入文件中的注释
这些注释全部去掉。自动生成时不生成xml的注释。
改造以后
11.映射文件中,namespace属性值设置。格式:mapper/dao接口的包名+.+类名+Mapper
namespace属性一般习惯使用持久层的包名类名。
12.生成的持久层接口的类名以类名+Dao后缀
看上面的图,GBM默认生成的是Mapper为后缀的,表达持久层的含义不太爽,改为Dao结尾。
13.经过上面的改造 代码是干净不少。
但在Dao里,还有一堆自动生成的方法,也不适用 我们也要改改。
方法上的注释我去掉了
我们只要4个方法 CRUD就可以了。改造后应该是这样的。
14.映入文件中也有Dao方法对应的配置。也要干掉
未改造好的功能。。。
1.Dao接口注释
生成的接口(主要是说Dao接口),类声明上没有注释。我要考虑怎么给它加上
2.CRUD方法,抽取到一个BaseDao里面,其它业务Dao直接继承就可以。有需要可能还要再加上泛型。这些都要在自动生成的时候生成好。
生成BaseDao及相关注释
那么业务Dao直接继承BaseDao
3.后面还要加入分页代码的生成。。。。
mybatis-generator mybatis代码生成 工具修改
标签:
原文地址:http://www.cnblogs.com/belongtou/p/4523844.html