详细讲解Maven插件MyBatis-Generator以及如何修改源码

1、常用使用方式:

     mybatis-generator有三种用法:命令行、eclipse插件、maven插件。个人觉得maven插件最方便,可以在eclipse/intellij idea等ide上可以通用。

     命令行:     

          java -jar mybatis-generator-core-x.x.x.jar -configfile generatorConfig.xml

          java -cp mybatis-generator-core-x.x.x.jar org.mybatis.generator.api.ShellRunner -configfile generatorConfig.xml

     eclipse插件:

          eclipse插件方式就不介绍了,网上搜一大堆;

     参考:http://mbg.cndocs.tk/index.html

          

2、重点介绍maven插件方式:

     注:这种方式最为方便,不需要IDE安装mybatis-generator插件,配置好就可以直接RUNING;

     2.1修改pom.xml:

          在pom.xml新增下面一段:          

          <plugin>
                <groupId>org.mybatis.generator</groupId> 
                <artifactId>mybatis-generator-maven-plugin</artifactId> 
                <version>1.3.2</version> 
                <configuration>
                     <configurationFile>generatorConfig.xml</configurationFile>
                    <verbose>true</verbose> 
                    <overwrite>true</overwrite>
                </configuration>
                <dependencies>
                       <dependency>
                           <groupId>org.mybatis.generator</groupId>
                           <artifactId>mybatis-generator-core</artifactId>
                           <version>1.3.2</version>
                       </dependency>
                   </dependencies>
            </plugin>

     2.2:在maven工程下新建generatorConfig.xml文件:

 

<?xml version="1.0" encoding="UTF-8" ?>
                  <!DOCTYPE generatorConfiguration PUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN" "http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd" >
<generatorConfiguration >
 
  <classPathEntry location="D:\soft\apache-maven-3.0.3\repo\mysql\mysql-connector-java\5.1.35\mysql-connector-java-5.1.35.jar"/>
 
  <context id="context1" >
            <commentGenerator  >
               <property name="javaFileEncoding" value="UTF-8"/>
               <property name="suppressAllComments" value="false" />
               <property name="suppressDate" value="true"/>
          </commentGenerator>
        <jdbcConnection driverClass="com.mysql.jdbc.Driver" 
               connectionURL="jdbc:mysql://192.168.1.192:3306/pluto_is?useUnicode=true&amp;characterEncoding=UTF-8" userId="root" password="123456" />
          
      <!--生成实体类 指定包名 以及生成的地址 (可以自定义地址,但是路径不存在不会自动创建  使用Maven生成在target目录下,会自动创建) -->
          <javaModelGenerator targetPackage="com.woter.server.core.test.entity" targetProject="D:/work/workspace/pluto-is-server/src/main/java" >
               <property name="enableSubPackages" value="true"/> <!-- 如果true,MBG会根据catalog和schema来生成子包。如果false就会直接用targetPackage属性。默认为false -->
               <property name="trimStrings" value="true" /> <!-- 当数据库字段使用CHAR时,建议在<javaModelGenerator>中设 -->
          </javaModelGenerator>
          
      <!--生成SQLMAP文件 -->
          <sqlMapGenerator targetPackage="com.woter.server.core.dao"  targetProject="D:/work/workspace/pluto-is-server/src/main/java" />
          
      <!--生成Dao文件 可以配置 type="XMLMAPPER"生成xml的dao实现 -->
          <javaClientGenerator targetPackage="com.woter.server.core.dao" targetProject="D:/work/workspace/pluto-is-server/src/main/java" type="XMLMAPPER" />
        
         <table tableName="t_policy_company_file" enableCountByExample="false" enableUpdateByExample="false" enableDeleteByExample="false" 
               enableSelectByExample="false"   selectByExampleQueryId="false" />
  </context>
</generatorConfiguration>

             

     这个文件有两个地方需要注意下:

           I):targetProject 如果是eclipse插件则只需要配置工程名 pluto-is-server,但用maven插件则不行必须用绝对路径,

                    否则会提醒 The specified target project directory pluto-is-server does not exist

           II):如果生成的文件乱码或者GBK时,则只需要加 <property name="javaFileEncoding" value="UTF-8"/>

     

     2.3:运行插件:

          选择maven工程->右键-->Run AS-->Maven Build.. -->Goals: 输入框输入 mybatis-generator:generate -->RUN

          (或者直接用maven命令去执行 mybatis-generator:generate 这句也是可以的)

          到这就可以了,再去刷新下工程文件就生成了。

 

3、修改mybatis-generator源码:

     3.1为什么要修改源码:

       应该当用mybatis-generator生产带注释的文件时,会发现全都是一推的英文而不是我们想要的数据库表或者字段的注释,导致我们后面还需要在实体类里一个一个的加注释非常的麻烦;

 

     3.2如何修改:

       首先新建一个maven工程,添加下面的依赖,使用maven的Download Sources,获得mybatis-generator-core的源码(在你本地的maven私服库 mybatis-generator-core-1.3.2-sources.jar)。

<dependency>

    <groupId>org.mybatis.generator</groupId>

    <artifactId>mybatis-generator-core</artifactId>

    <version>1.3.2</version>

</dependency>

        将mybatis-generator-core-1.3.2-sources.jar解压然后把org文件拷贝工程的src目录,然后就可以开始修改了。 但这时会发现有类报错,表示有对别的jar包依赖,则修改修改下pom.xml文件

        添加下面两个(记得删除 mybatis-generator-core):           

<dependency>
    <groupId>log4j</groupId>
    <artifactId>log4j</artifactId>
    <version>1.2.17</version>
</dependency>
<dependency>
    <groupId>org.apache.ant</groupId>
    <artifactId>ant</artifactId>
    <version>1.9.4</version>
</dependency>

         到这,工程就不报错了。

     3.3修改哪:

          主要修改 org.mybatis.generator.internal.DefaultCommentGenerator类中的:          

      public void addFieldComment(Field field,IntrospectedTable introspectedTable,IntrospectedColumn introspectedColumn) {

                  if (suppressChineseComments||introspectedColumn.getRemarks()==null) {
                      return;
                  }
                  field.addJavaDocLine("/** "+introspectedColumn.getRemarks()+" */"); //$NON-NLS-1$
    }

     修改完这个方法后,字段的注释是OK了,但发现get set 以及mapper中的方法上的英文注释也会生成,但我们想去掉。这时只需要修改 DefaultCommentGenerator的其他方法,把所有加注释的代码都删掉就OK了。

     到这,代码修改完成了。接下就是把这个类型编译好的DefaultCommentGenerator.class文件替换在你maven私服库里的mybatis-generator-core-1.3.2.jar里的DefaultCommentGenerator.class就OK了。

转载于:https://my.oschina.net/woter/blog/752751

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值