1. 程式人生 > >Mybastic程式碼生成工具(使用mybatis-generator-core-1.3.2.jar生成)

Mybastic程式碼生成工具(使用mybatis-generator-core-1.3.2.jar生成)

前言:

mybatis-generator是根據配置檔案中我們配置的資料庫連線引數自動連線到資料庫並根據對應的資料庫表自動的生成與之對應mapper對映(比如增刪改查,選擇性增刪改查等等簡單語句)檔案、對應的dao介面檔案以及對應的entity實體(bean)

一、首先,我們需要引入所需要的jar包

1、mybatis-generator所需的jar包

mybatis-generator-core-1.3.2.jar (mybatis-generator-core的版本可以自行選擇)

2、資料庫連線jar包

比如Oracle資料庫用ojdbc6.jar或者MySQLmysql-connector-

Java.jar,版本依據資料庫自行選擇

二、Mybatis-Generator配置檔案詳解

1、xml配置檔案頭

[html] view plain copy  print?
  1. <?xmlversion="1.0"encoding="UTF-8"?>
  2. <!DOCTYPE generatorConfiguration  
  3.         PUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN"  
  4.         "http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd">
  5. <generatorConfiguration>
  6. <!--這裡寫配置-->
  7. </generatorConfiguration>

2、配置資料庫連線jar包所在位置

以ojdbc6.jar為例 [html] view plain copy  print?
  1. <!-- 指定資料連線驅動jar地址 -->
  2. <!--     <classPathEntry location="${classPath}" /> -->
  3.     <classPathEntrylocation="D:\Repository\Publish\ojdbc6.jar"
    />

3、資料庫連線引數和自動生成引數配置

詳細配置的含義看對應註釋 [html] view plain copy  print?
  1. <contextid="SqlTables"targetRuntime="MyBatis3">
  2.         <!-- 註釋 -->
  3.         <commentGenerator>
  4.             <propertyname="suppressAllComments"value="true"/><!-- 是否取消註釋 -->
  5.             <propertyname="suppressDate"value="true"/><!-- 是否生成註釋代時間戳 -->
  6.         </commentGenerator>
  7.         <!-- jdbc連線 -->
  8. <!--         <jdbcConnection driverClass="${jdbc_driver}"   -->
  9. <!--             connectionURL="${jdbc_url}" userId="${jdbc_user}"   -->
  10. <!--             password="${jdbc_password}" />   -->
  11.         <jdbcConnectiondriverClass="oracle.jdbc.driver.OracleDriver"
  12.             connectionURL="jdbc:oracle:thin:@//localhost:1521/orcl"userId="admin"
  13.             password="123456"/>
  14.         <!-- 型別轉換 -->
  15.         <javaTypeResolver>
  16.             <!-- 是否使用bigDecimal, false可自動轉化以下型別(Long, Integer, Short, etc.) -->
  17.             <propertyname="forceBigDecimals"value="false"/>
  18.         </javaTypeResolver>
  19.         <!-- 生成實體類地址  targetProject是生成檔案的存放位置,targetPackage是生成檔案的所在packet-->
  20.         <javaModelGeneratortargetPackage="cc.eguid.blog.entity"
  21.             targetProject="D:Repository\eguid-blog-entity\src\main\java">
  22.             <propertyname="enableSubPackages"value="false"/>
  23.             <propertyname="rootClass"value="com.itssky.aqjg.entity.base.BaseInfo"/>
  24.             <propertyname="trimStrings"value="true"/>
  25.         </javaModelGenerator>
  26.         <!-- 生成mapxml檔案 -->
  27.         <sqlMapGeneratortargetPackage="cc.eguid.blog.dao.mapper"
  28.             targetProject="D:\Repository\eguid-blog-dao\src\main\java">
  29.             <!-- 是否在當前路徑下新加一層schema,eg:fase路徑com.oop.eksp.user.model, true:com.oop.eksp.user.model.[schemaName] -->
  30.             <propertyname="enableSubPackages"value="false"/>
  31.         </sqlMapGenerator>
  32.         <!-- 生成mapxml對應client,也就是介面dao -->
  33.         <javaClientGeneratortargetPackage="cc.eguid.blog.dao"
  34.             targetProject="D:\Repository\aqjg\eguid-blog-dao\src\main\java"type="XMLMAPPER">
  35.             <!-- 是否在當前路徑下新加一層schema,eg:fase路徑com.oop.eksp.user.model, true:com.oop.eksp.user.model.[schemaName] -->
  36.             <propertyname="enableSubPackages"value="false"/>
  37.         </javaClientGenerator>
  38.         <!-- 配置表 -->
  39.         <!--tableName對應表名,domainObjectName是實體類名 xxxxxByExample這幾個是是否生成選擇性增刪改查mapper-->
  40.         <tabletableName="B_DBGL_PINGSYBAXX"domainObjectName="Pingsybaxx"
  41.         enableCountByExample="false"enableUpdateByExample="false"enableDeleteByExample="false"
  42.         enableSelectByExample="false"selectByExampleQueryId="false"></table>
  43.     </context>

三、通過命令列執行

1、命令(generatorConfig.xml為配置檔案)

java -jar mybatis-generator-core-1.3.2.jar -configfile generatorConfig.xml -overwrite

2、建議在mybatis-generator-core-1.3.2.jar所在資料夾下新建一個xxx.bat檔案,裡面放入上面的命令,就可以方便自動生成

四、完整配置例子

[html] view plain copy  print?
  1. <?xmlversion="1.0"encoding="UTF-8"?>
  2. <!DOCTYPE generatorConfiguration  
  3.         PUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN"  
  4.         "http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd">
  5. <generatorConfiguration>
  6. <!--     <properties resource="generatorConfig.properties" /> -->
  7.     <!-- 指定資料連線驅動jar地址 -->
  8. <!--     <classPathEntry location="${classPath}" /> -->
  9.     <classPathEntrylocation="D:\blessedRepository\Publish\ojdbc6.jar"/>
  10.     <contextid="SqlTables"targetRuntime="MyBatis3">
  11.         <!-- 註釋 -->
  12.         <commentGenerator>
  13.             <propertyname="suppressAllComments"value="true"/><!-- 是否取消註釋 -->
  14.             <propertyname="suppressDate"value="true"/><!-- 是否生成註釋代時間戳 -->
  15.         </commentGenerator>
  16.         <!-- jdbc連線 -->
  17. <!--         <jdbcConnection driverClass="${jdbc_driver}"   -->
  18. <!--             connectionURL="${jdbc_url}" userId="${jdbc_user}"   -->
  19. <!--             password="${jdbc_password}" />   -->
  20.         <jdbcConnectiondriverClass="oracle.jdbc.driver.OracleDriver"
  21.             connectionURL="jdbc:oracle:thin:@//localhost:1521/orcl"userId="admin"
  22.             password="123456"/>
  23.         <!-- 型別轉換 -->
  24.         <javaTypeResolver>
  25.             <!-- 是否使用bigDecimal, false可自動轉化以下型別(Long, Integer, Short, etc.) -->
  26.             <