mybatis generator tools配置文件解析

轉載自:http://liyixing1.iteye.com/blog/1751433


<?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 > 
<!-- 配置屬性文件 用來在配置文件中引入變量 El表達式 --> 
<!-- 如果是用cmd方式運行 這裏應該寫url方式寫全路徑 因爲找不到classpath 對於resource來說 --> 
<properties url="file:///D:/workspaces/mybatisGen/bin/generatorConfig.properties"/> 
<!-- 設置sqlServer驅動路徑 --> 
<classPathEntry location="${sqljdbcPath}" /> 
<!-- 此處指定生成針對MyBatis3的DAO--> 
<!--  
id: 必須配置。這個上下文的惟一標識符。該值將被用在一些錯誤消息。 

defaultModelType:用來定義生成模型類型策略。 
1.conditional 默認策略,爲每個表生成一個Model class 
2.flat:將所有的表中生成一個Model class,即這個類將保存所有表中字段 
3.hierarchical :如果表有一個主鍵,該模型將生成一個主鍵類,另一個類,用於容納任何BLOB列在表中,和另一個類,用於容納其餘的字段。這個是一個適當的繼承類之間的關係。 

targetRuntime:此屬性用於指定運行時目標生成的代碼。 
1.MyBatis3 默認值 將生成對象兼容MyBatis版本3.0和更高版本,和JSE 5.0和更高版本 
(例如Java模型和mapper接口將使用泛型類型)。 
“by example”方法在這些生成的對象支持幾乎無限的動態where子句。 
此外,Java對象與這些生成器生成支持許多JSE 5.0特性包括參數化的類型和註釋。 

2.Ibatis2Java2 
3.Ibatis2Java5 

--> 
  <context id="context1"  targetRuntime="MyBatis3" defaultModelType="conditional"> 

<!-- 

<plugin type="org.mybatis.generator.plugins.EqualsHashCodePlugin" /> 
  <!-- 用來生成註釋 
   1. suppressAllComments 默認是false  此屬性用於指定在生成的代碼是否將包括任何註釋。如果設置爲true 則不生成註釋 
   2.  suppressDate 默認是false       此屬性用於指定在生成的註釋是否將包括MBG代時間戳。 
  --> 
  <commentGenerator> 
   <property name="suppressAllComments" value="true" /> 
  </commentGenerator> 
  <!-- jdbc連接信息 --> 
  <!-- 
   jdbcConnection  必須配置 用來連接數據庫的 無需解釋 
   --> 
    <jdbcConnection driverClass="${driverClass}"  
    connectionURL="${connectionURL}" 
    userId="${userId}" password="${password}" /> 
    <!-- java類型解析器 可選配置 --> 
    <!-- 
     <javaTypeResolver type=""> type屬性: 這可用於指定一個用戶提供的Java類型解析器。這個類必須實現接口org.mybatis.generator.api。JavaTypeResolver,必須有一個公共的默認構造函數。屬性還可以接受特殊的值默認在這種情況下,將使用默認的實現(這同樣的效果不指定類型)。 
     該標籤支持的屬性: 
     forceBigDecimals:默認是false 是否強制使用BigDecimal來表示所有的十進制和數值字段。 
     •如果規模更大•然後零,或長度大於18,那麼不只。將使用BigDecimal類型 
  •如果其長度爲10到18歲,則Java類型解析器將java.lang.Long來代替了。 
  •如果長度爲5到9,然後Java類型解析器將替換一個Java.lang.integer。 
  •如果其長度小於5,則Java類型解析器將java.lang.Short替代。 
      
     --> 
    <javaTypeResolver > 
     <property name="" value=""/> 
    </javaTypeResolver> 
    <!-- 生成vo對象 --> 
    <!-- 
    < javaModelGenerator >元素用於定義Java模型生成的屬性。 
    Java模型生成器建立主鍵類,記錄類,和查詢示例類相匹配的表進行自省。這個元素是所需的子元素<上下文>元素。 
    
    支持的屬性: 
    constructorBased: 
    此屬性用於選擇是否MyBatis生成器將生成一個類的構造函數,它接受一個值類中的每個字段。同時,SQL結果地圖將建成投入使用構造函數而不是“setter”爲每個字段。 
    這個屬性是隻適用於MyBatis3和將被忽略了iBATIS2。 
    這個屬性可以被相應的屬性在< table >元素。 
    默認值是false。 
    
    immutable:不可變,此屬性用於選擇是否MyBatis生成器將產生不可變模型類——這意味着類不會有“setter”方法和構造函數會接受類中每個字段的值。默認爲false. 
    trimStrings: 
    此屬性用於選擇是否MyBatis生成器添加代碼來修剪的白色空間從字符字段從數據庫返回的。這可以是很有用的,如果您的數據庫將數據存儲在字符字段而不是VARCHAR字段。當真正的,MyBatis生成器將插入代碼來削減字符字段。 
    默認值是false。 
     --> 
    <javaModelGenerator targetPackage="${modelPackage}" targetProject="${targetProject}" /> 
    <!-- 生成用於查詢的Example對象 --> 
    <sqlMapGenerator targetPackage="${sqlMapperPackage}" targetProject="${targetProject}" /> 
    <!-- 生成DAO的類文件以及配置文件 --> 
    <!-- 
    < javaClientGenerator >元素是用來定義Java客戶機代碼生成器的屬性。 
    Java客戶機生成器用來建立Java接口和類,以便可以方便地使用生成的Java模型和XML映射文件。 
    對於iBATIS2目標環境,這些生成的對象採用的形式DAO接口和實現類。 
    對於MyBatis,生成的對象採用的形式mapper接口。 
    這個元素是一個可選的子元素<上下文>元素。 
    如果你不指定這個元素,然後MyBatis生成器(MBG)不會生成Java客戶端接口和類。 
    
    其中的type屬性: 
    如果targetRuntime 爲MyBatis3 
    XMLMAPPER:生成的對象將Java接口MyBatis 3。x mapper基礎設施。接口將會依賴生成的XML映射器文件。一般都是使用這個XMLMAPPER. 
     --> 
    <javaClientGenerator targetPackage="${daoMapperPackage}" targetProject="${targetProject}" type="XMLMAPPER" /> 
       <!-- 
    <table>元素用於選擇數據庫中的一個表。選擇的表將導致生成以下對象爲每個表: 
     •一個MyBatis / iBATIS•格式化的SQL的映射文件 
     •一組類,形成了“模型”表包括: 
     •一個類來匹配•表的主鍵(如果表有一個主鍵)。 
     •班表中字段匹配的,不是在主鍵,而非BLOB字段。這個類將擴展主鍵,如果有一個。 
     •一個類來持有任何表中的BLOB字段(如果有的話)。這個類將擴展其中一個的前面兩個類取決於表的配置。 
     •一個類,用於生成動態where子句,在不同的“by Example”方法(selectByExample,deleteByExample)。 
     •(可選)DAO接口和類 
     
     tableName:必須配置  指定表的名稱 
     
     domainObjectName:生成javabean對象的基本名稱。如果未指定,MBG將自動基於表名生成。 

     這個名字(無論是在這裏指定,或自動生成)將被用來作爲域類名和DAO類的名字。 
     
     enableInsert:是否生成插入語句。默認是true 
     enableSelectByPrimaryKey:是否通過主鍵生成選擇語句。不管是否有這種設置,如果該表沒有一個主鍵將不會生成。 
     enableUpdateByPrimaryKey:是否通過主鍵生成更新語句。如果該表沒有主鍵,不管是否設置該屬性,語句將不會生成。 
     enableDeleteByPrimaryKey:是否通過主鍵生成刪除語句。如果該表沒有主鍵,不管這種設置該屬性,語句將不會生成。 
     enableDeleteByExample:是否通過example對象生成刪除語句。這個聲明使得許多不同的動態刪除在運行時生成。 
     enableCountByExample:是否通過example對象生成計算行數語句。該語句將返回一個表中的行數相匹配的example。 
     enableUpdateByExample:是否通過example對象生成更新語句。該語句將更新一個表中相匹配的記錄。 

    selectByPrimaryKeyQueryId:這個值將被添加到選擇列表中選擇通過主鍵的聲明在本表格:“' <值>作爲QUERYID”。這可以用於識別查詢在DBA在運行時跟蹤工具。如果你使用這樣的價值,你應該指定一個唯一的id爲每個不同的查詢生成MBG。 
     selectByExampleQueryId:這個值將被添加到選擇列表中選擇通過例子的聲明在本表格:“' <值>作爲QUERYID”。這可以用於識別查詢在DBA在運行時跟蹤工具。如果你使用這樣的價值,你應該指定一個唯一的id爲每個不同的查詢生成MBG。 
     enableSelectByExample:是否應該生成通過example的選擇語句。這個聲明使得許多不同的動態查詢是在運行時生成。 
     
     
     modelType:此屬性用於覆蓋默認的模型類型,如果你想對這張表這麼做。如果未指定,MBG將生成的域對象基於上下文默認的模型類型。 
     該模型類型定義瞭如何將生成MBG域類。 
     一些模型類型MBG將生成一個單一的域類爲每個表,和其他可能產生不同的類MBG取決於表的結構。 
     escapeWildcards:排除通配符。這意味着無論SQL通配符(' _ '和' % ')的模式和表名都應該避免在搜尋列。這是一些驅動要求如果模式或表包含一個SQL通配符(例如,如果一個表的名字是MY_TABLE,一些驅動要求的下劃線字符進行轉義)。 
       --> 
    <table schema="" tableName="base_user" > 
    </table> 
  </context> 
</generatorConfiguration>

發佈了58 篇原創文章 · 獲贊 3 · 訪問量 45萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章