mybatis-generator mybatis代码生成 工具修改

这两天没什么事 把MyBatis-Genrator(MBG) mybatis官方提供的代码生成工具改造下了。

先说下主要改造的功能:

java实体类部分

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结尾。

生成通用的CRUD

13.经过上面的改造 代码是干净不少。

但在Dao里,还有一堆自动生成的方法,也不适用 我们也要改改。

方法上的注释我去掉了

我们只要4个方法 CRUD就可以了。改造后应该是这样的。

14.映入文件中也有Dao方法对应的配置。也要干掉

问题

未改造好的功能。。。

1.Dao接口注释

生成的接口(主要是说Dao接口),类声明上没有注释。我要考虑怎么给它加上

2.CRUD方法,抽取到一个BaseDao里面,其它业务Dao直接继承就可以。有需要可能还要再加上泛型。这些都要在自动生成的时候生成好。

生成BaseDao及相关注释

那么业务Dao直接继承BaseDao

 

3.后面还要加入分页代码的生成。。。。

 

附上修改好的源码和jar包

链接:http://pan.baidu.com/s/1eQ8LTXw 密码:pnn5

 

posted @ 2015-05-23 11:37  belongtou  阅读(1444)  评论(0)    收藏  举报