码迷,mamicode.com
首页 > 其他好文 > 详细

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

时间:2015-05-23 12:53:43      阅读:829      评论:0      收藏:0      [点我收藏+]

标签:

这两天没什么事 把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.后面还要加入分页代码的生成。。。。

 

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

标签:

原文地址:http://www.cnblogs.com/belongtou/p/4523844.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!