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

一、经常使用使用方式:html

     mybatis-generator有三种用法:命令行、eclipse插件、maven插件。我的以为maven插件最方便,能够在eclipse/intellij idea等ide上能够通用。java

     命令行:     mysql

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

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

     eclipse插件:apache

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

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

          

二、重点介绍maven插件方式:app

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

     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 这句也是能够的)

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

 

三、修改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了。

相关文章
相关标签/搜索