詳細講解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了。

相關文章
相關標籤/搜索