轉載自: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>