1. 程式人生 > >generator自動生成mybatis配置和類資訊

generator自動生成mybatis配置和類資訊

generator自動生成mybatis的xml配置、model、map等資訊: 
1、下載mybatis-generator-core-1.3.2.jar包。 
       網址:http://code.google.com/p/mybatis/downloads/list?can=3&q=Product%3DGenerator,下載mybatis-generator-core-1.3.2-bundle.zip,解壓 
       找到lib下的需要jar包。 
2、編寫genertor的xml檔案,名下:generator.xml

Xml程式碼  收藏程式碼
  1. <?xml version="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.   <!-- classPathEntry:資料庫的JDBC驅動的jar包地址-->  
  7.   <classPathEntry location
    ="E:\oracle\product\10.2.0\db_1\jdbc\lib\ojdbc14.jar" />  
  8. <context id="DB2Tables" targetRuntime="MyBatis3">  
  9.   <commentGenerator>  
  10.     <!-- 是否去除自動生成的註釋 true:是 : false:否 -->  
  11.     <property name="suppressAllComments" value="true" />  
  12.     <!--資料庫連線的資訊:驅動類、連線地址、使用者名稱、密碼 -->
      
  13.   </commentGenerator>  
  14.   <jdbcConnection driverClass="oracle.jdbc.driver.OracleDriver"  
  15.           connectionURL="jdbc:oracle:thin:@198.17.1.1:1521:ORCL"  
  16.           userId="unuser"  
  17.           password="password">  
  18.   </jdbcConnection>  
  19.     <!--  預設false,把JDBC DECIMAL 和 NUMERIC 型別解析為 Integer   
  20.          true,把JDBC DECIMAL 和 NUMERIC 型別解析為java.math.BigDecimal   
  21.      -->   
  22.   <javaTypeResolver >  
  23.      <property name="forceBigDecimals" value="false" />  
  24.   </javaTypeResolver>  
  25.   <!-- targetProject:自動生成程式碼的位置 -->  
  26.   <javaModelGenerator targetPackage="com.soft.model" targetProject="E:\WebWorkSpace\workspace_js\downAttachdemo\src">  
  27.       <!-- enableSubPackages:是否讓schema作為包的字尾 -->       
  28.       <property name="enableSubPackages" value="true" />  
  29.     <!-- 從資料庫返回的值被清理前後的空格  -->   
  30.       <property name="trimStrings" value="true" />  
  31.   </javaModelGenerator>  
  32.   <sqlMapGenerator targetPackage="sqlmap"  targetProject="E:\WebWorkSpace\workspace_js\downAttachdemo\conf">  
  33.        <property name="enableSubPackages" value="false" />  
  34.   </sqlMapGenerator>  
  35.   <javaClientGenerator type="XMLMAPPER" targetPackage="com.soft.mapping"  targetProject="E:\WebWorkSpace\workspace_js\downAttachdemo\src">  
  36.     <property name="enableSubPackages" value="true" />  
  37.   </javaClientGenerator>  
  38.   <!-- tableName:用於自動生成程式碼的資料庫表;domainObjectName:對應於資料庫表的javaBean類名 -->  
  39.   <table schema="untodo" tableName="mocha_t_app" domainObjectName="MochaTodoApp" >  
  40.   </table>  
  41. </context>  
  42. </generatorConfiguration>  


table其他屬性: 
enableCountByExample="false" 
enableUpdateByExample="false" 
enableDeleteByExample="false" 
enableSelectByExample="false" 
selectByExampleQueryId="false" 
schema即為資料庫名, tableName為對應的資料庫表, domainObjectName是要生成的實體類, 
如果想要mapper配置檔案加入sql的where條件查詢, 可以將enableCountByExample等設為true, 
這樣就會生成一個對應domainObjectName的Example類, enableCountByExample等設為false時, 
就不會生成對應的Example類了. 

如果table裡邊不配置property,預設欄位都生成為類屬性。 
<ignoreColumn column="FRED" />//忽略欄位 
<columnOverride column="LONG_VARCHAR_FIELD" jdbcType="VARCHAR" />//無論欄位是什麼型別,生成的類屬性都是varchar。 

3、執行有四種:命令生成(最簡單)、Java生成、ant生成、maven生成。這裡說兩種,有興趣其餘的可以在mybatis官網去學習。 

1)、執行-》cmd->java - jar jar包的檔案路徑  -configfile  generator.xml的檔案路徑  -overwrite 命令。 
如下:

Java程式碼  收藏程式碼
  1. java -jar E:\Websoft\mybaits\mybatis-generator-core-1.3.2\lib\mybatis-generator-core-1.3.2.jar -configfile E:\WebWorkSpace\workspace_js\downAttachdemo\src\com\mochasoft\down\generator.xml -overwrite  

成功時輸出:MyBatis Generator finished successfully. 
2)、java執行關鍵程式碼:

Java程式碼  收藏程式碼
  1. List<String> warnings = new ArrayList<String>();  
  2.   boolean overwrite = true;  
  3.   File configFile = new File("generatorConfig.xml");  
  4.   ConfigurationParser cp = new ConfigurationParser(warnings);  
  5.   Configuration config = cp.parseConfiguration(configFile);  
  6.   DefaultShellCallback callback = new DefaultShellCallback(overwrite);  
  7.   MyBatisGenerator myBatisGenerator = new MyBatisGenerator(config, callback, warnings);  
  8.   myBatisGenerator.generate(null);  


其實Java執行,細分可以分兩種,還有一種可以去官網學習。 
  
4、生成程式碼之後,根據自己的實際專案架構,可以對生成的程式碼進行適當的修改,如把資料庫管理交有spring等等。