Mybatis Generator 配置

一個空白的mybatis-generator配置文件以下:

<?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>
    
    <properties resource="xxx" />
    
    <classPathEntry location="xxx/mysql-connector-java-5.1.47.jar"/>
    
    <context id="context" targetRuntime="MyBatis3">
        
        <property name="xxx" value="xxx" />
        
        <plugin type="org.mybatis.generator.plugins.SqlMapConfigPlugin" />
        
        <commentGenerator>
            <property name="suppressAllComments" value="false"/>
            <property name="suppressDate" value="true"/>
        </commentGenerator>
        
        <jdbcConnection driverClass="" connectionURL="" userId="" password=""/>
        
        <javaTypeResolver>
            <property name="forceBigDecimals" value="false"/>
        </javaTypeResolver>
        
        <javaModelGenerator targetPackage="" targetProject="THIS_CONFIGURATION_IS_NOT_REQUIRED">
            <property name="enableSubPackages" value="false"/>
            <property name="trimStrings" value="true"/>
        </javaModelGenerator>
        
        <sqlMapGenerator targetPackage="" targetProject="THIS_CONFIGURATION_IS_NOT_REQUIRED">
            <property name="enableSubPackages" value="false"/>
        </sqlMapGenerator>
        
        <javaClientGenerator targetPackage="" targetProject="THIS_CONFIGURATION_IS_NOT_REQUIRED" type="XMLMAPPER">
            <property name="enableSubPackages" value="false"/>
        </javaClientGenerator>
        
        <table tableName="" enableCountByExample="false" enableDeleteByExample="false" enableSelectByExample="false"
               enableUpdateByExample="false"/>
    </context>
</generatorConfiguration>

maven下使用方式以下:

<plugin>
    <groupId>org.mybatis.generator</groupId>
    <artifactId>mybatis-generator-maven-plugin</artifactId>
    <version>1.3.7</version>
    <configuration>
        <configurationFile>src/main/resources/mybatis-generator/mybatis-generator.xml</configurationFile>
        <overwrite>true</overwrite>
        <verbose>true</verbose>
    </configuration>
    <dependencies>
        <dependency> <!-- github上, mybatis-generator的第三方插件擴展. 不須要能夠刪除 -->
            <groupId>com.itfsw</groupId>
            <artifactId>mybatis-generator-plugin</artifactId>
            <version>1.2.17</version>
        </dependency>
        <dependency>
            <groupId>org.mybatis.generator</groupId>
            <artifactId>mybatis-generator-core</artifactId>
            <version>1.3.7</version>
        </dependency>
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>${mysql.version}</version>
        </dependency>
    </dependencies>
</plugin>

mybatis-generator.xml詳細說明:

1. properties子節點

這個元素用來指定外部的屬性元素,不是必須的元素.html

元素用於指定一個須要在配置中解析使用的外部屬性文件,引入屬性文件後,能夠在配置中使用 ${property}這種形式的引用,經過這種方式引用屬性文件中的屬性值. 對於後面須要配置的jdbc信息和targetProject屬性會頗有用.這個屬性能夠經過resource或者url來指定屬性文件的位置,這兩個屬性只能使用其中一個來指定,同時出現會報錯.java

  • resource:指定classpath下的屬性文件,例如properties/generatorConfig.properties
  • url:能夠指定文件系統上的特定位置,例如file:///C:/myfolder/generatorConfig.properties

2. classPathEntry子節點

這個元素的做用是將mybatis-generator運行時須要用到的jar包(或zip格式)添加到classpath下.(若是使用mybatis-generator-maven-plugin插件運行, 在dependencies中添加便可不須要添加該子節點)mysql

3. context子節點

<context>元素用於指定生成一組對象的環境.例如指定要鏈接的數據庫,要生成對象的類型和要處理的數據庫中的表.git

該元素只有一個必選屬性id,用來惟一肯定一個<context>元素.github

此外還有幾個可選屬性:正則表達式

  • defaultModelType:這個屬性很重要,這個屬性定義了MBG如何生成實體類.這個屬性有如下可選值:
    • conditional:這是默認值,這個模型和下面的hierarchical相似,除了若是那個單獨的類將只包含一個字段,將不會生成一個單獨的類. 所以,若是一個表的主鍵只有一個字段,那麼不會爲該字段生成單獨的實體類,會將該字段合併到基本實體類中.
    • flat:該模型爲每一張表只生成一個實體類.這個實體類包含表中的全部字段.這種模型最簡單,推薦使用.
    • hierarchical:若是表有主鍵,那麼該模型會產生一個單獨的主鍵實體類,若是表還有BLOB字段, 則會爲表生成一個包含全部BLOB字段的單獨的實體類,而後爲全部其餘的字段生成一個單獨的實體類. MBG會在全部生成的實體類之間維護一個繼承關係.
  • targetRuntime:此屬性用於指定生成的代碼的運行時環境.該屬性支持如下可選值(通常狀況下使用默認值便可,有關這些值的具體做用以及區別請查看中文文檔的詳細內容):introspectedColumnImpl:該參數能夠指定擴展org.mybatis.generator.api.IntrospectedColumn該類的實現類.該屬性的做用能夠查看擴展MyBatis Generator.
    • MyBatis3:這是默認值
    • MyBatis3Simple: 不生成和Example查詢有關的內容
    • Ibatis2Java2:
    • Ibatis2Java5:

3.1 property子節點

  • autoDelimitKeywords: 當表名或者字段名爲SQL關鍵字的時候,能夠設置該屬性爲true,MBG會自動給表名或字段名添加分隔符.
  • beginningDelimiter: 指明數據庫的用於標記數據庫對象名的符號. 因爲beginningDelimiter和endingDelimiter的默認值爲雙引號("),在Mysql中不能這麼寫,因此還要將這兩個默認值改成反單引號(`).
  • endingDelimiter: 同beginningDelimiter.
  • javaFileEncoding: java文件的編碼,默認使用當前平臺的編碼,只有當生產的編碼須要特殊指定時才須要使用,通常用不到.
  • javaFormatter: 若是你想使用模板來定製生成的java文件的樣式,你能夠經過指定這個屬性的值來實現.
  • xmlFormatter: 若是你想使用模板來定製生成的xml文件的樣式,你能夠經過指定這個屬性的值來實現.

3.2 plugin子節點

用來定義一個插件.插件用於擴展或修改經過MyBatis Generator (MBG)代碼生成器生成的代碼.插件將按在配置中配置的順序執行.sql

https://github.com/itfsw/mybatis-generator-plugin/tree/master:第三方mybatis-generator插件數據庫

3.3 commentGenerator子節點

該元素有一個可選屬性type, 能夠指定用戶的實現類,該類須要實現org.mybatis.generator.api.CommentGenerator接口.並且必有一個默認的構造方法.api

這個屬性接收默認的特殊值DEFAULT,會使用默認的實現類org.mybatis.generator.internal.DefaultCommentGenerator.默認的實現類中提供了兩個可選屬性,須要經過<property>屬性進行配置.mybatis

  • suppressAllComments:阻止生成註釋,默認爲false(建議保留爲默認值)
  • suppressDate:阻止生成的註釋包含時間戳,默認爲false

通常狀況下因爲MBG生成的時間註釋信息沒有任何價值,並且每次生成的註釋都不同,使用版本控制的時候每次都會提交,於是通常狀況下咱們都會屏蔽時間的註釋信息.

對於suppressAllComments, 無論你是否要重寫本身的註釋生成器,有一點不能忘記,那就是註釋中必定要保留@mbggenerated, MBG經過該字符串來判斷代碼是否爲代碼生成器生成的代碼,有該標記的的代碼在從新生成的時候會被刪除,不會重複.不會在XML中出現重複元素.

3.4 jdbcConnection子節點

用於指定數據庫鏈接信息,該元素必選,而且只能有一個.

  • driverClass: 訪問數據庫的JDBC驅動程序的徹底限定類名
  • connectionURL: 訪問數據庫的JDBC鏈接URL
  • userId: 訪問數據庫的用戶ID
  • password: 訪問數據庫的密碼

3.5 javaTypeResolver子節點

這個元素的配置用來指定JDBC類型和Java類型如何轉換.該元素提供了一個可選的屬性type,和<commentGenerator>比較相似,提供了默認的實現DEFAULT,通常狀況下使用默認便可,須要特殊處理的狀況能夠經過其餘元素配置來解決,不建議修改該屬性.

  • forceBigDecimals: 該屬性能夠控制是否強制DECIMAL和NUMERIC類型的字段轉換爲Java類型的java.math.BigDecimal,默認值爲false,通常不須要配置.
    • 默認狀況下的轉換規則爲:
    • 若是精度>0或者長度>18,就會使用java.math.BigDecimal
    • 若是精度=0而且10<=長度<=18,就會使用java.lang.Long
    • 若是精度=0而且5<=長度<=9,就會使用java.lang.Integer
    • 若是精度=0而且長度<5,就會使用java.lang.Short
    • 若是設置爲true,那麼必定會使用java.math.BigDecimal.
  • useJSR310Types: 用於指定MyBatis Generator是否應強制在DATE,TIME和TIMESTAMP字段中使用JSR-310數據類型,而不是使用java.util.Date.

3.6 javaModelGenerator子節點

該元素用來控制生成的實體類,根據<context>中配置的defaultModelType,一個表可能會對應生成多個不一樣的實體類.

該元素只有兩個屬性,都是必選的.

  • targetPackage:生成實體類存放的包名,通常就是放在該包下.實際還會受到其餘配置的影響(<table>中會提到).
  • targetProject:指定目標項目路徑,使用的是文件系統的絕對路徑.

該元素支持如下幾個<property>子元素屬性:

  • constructorBased:該屬性只對MyBatis3有效,若是true就會使用構造方法入參,若是false就會使用setter方式.默認爲false.
  • enableSubPackages:若是true,MBG會根據catalog和schema來生成子包.若是false就會直接用targetPackage屬性.默認爲false.
  • immutable:該屬性用來配置實體類屬性是否可變,若是設置爲true,那麼constructorBased無論設置成什麼,都會使用構造方法入參,而且不會生成setter方法.默認爲false.
  • rootClass:設置全部實體類的基類.若是設置,須要使用類的全限定名稱.而且若是MBG可以加載rootClass,那麼MBG不會覆蓋和父類中徹底匹配的屬性.匹配規則:
    • 屬性名徹底相同
    • 屬性類型相同
    • 屬性有getter方法
    • 屬性有setter方法
  • trimStrings:是否對數據庫查詢結果進行trim操做,若是設置爲true, setter方法中會調用trim()方法.默認值爲false.

3.7 sqlMapGenerator子節點

該元素可選,最多配置一個.可是有以下兩種必選的特殊狀況:

  • 若是targetRuntime目標是iBATIS2,該元素必須配置一個.
  • 若是targetRuntime目標是MyBatis3,只有當<javaClientGenerator>須要XML時,該元素必須配置一個. 若是沒有配置 <javaClientGenerator>,則使用如下的規則:
    • 若是指定了一個<sqlMapGenerator>,那麼MBG將只生成XML的SQL映射文件和實體類.
    • 若是沒有指定<sqlMapGenerator>,那麼MBG將只生成實體類.

該元素的兩個屬性和javaModelGenerator子節點同樣,都是必選的.

該元素支持<property>子元素,只有一個能夠配置的屬性:

  • enableSubPackages:若是true,MBG會根據catalog和schema來生成子包.若是false就會直接用targetPackage屬性.默認爲false.

3.8 javaClientGenerator子節點

若是不配置該元素,就不會生成Mapper接口. 該元素有4個屬性:

  • type: 必選屬性. 該屬性用於選擇一個預約義的客戶端代碼(能夠理解爲Mapper接口)生成器,用戶能夠自定義實現,須要繼承org.mybatis.generator.codegen.AbstractJavaClientGenerator類,必選有一個默認的構造方法. 該屬性提供瞭如下預約的代碼生成器,首先根據<context>的targetRuntime分紅三類:
    • MyBatis3:
      • ANNOTATEDMAPPER:基於註解的Mapper接口,不會有對應的XML映射文件
      • MIXEDMAPPER:XML和註解的混合形式,(上面這種狀況中的)SqlProvider註解方法會被XML替代.
      • XMLMAPPER:全部的方法都在XML中,接口調用依賴XML文件.
    • MyBatis3Simple:
      • ANNOTATEDMAPPER:基於註解的Mapper接口,不會有對應的XML映射文件
      • XMLMAPPER:全部的方法都在XML中,接口調用依賴XML文件.
    • Ibatis2Java2或Ibatis2Java5:
      • IBATIS:生成的對象符合iBATIS的DAO框架(不建議使用).
      • GENERIC-CI:生成的對象將只依賴於SqlMapClient,經過構造方法注入.
      • GENERIC-SI:生成的對象將只依賴於SqlMapClient,經過setter方法注入.
      • SPRING:生成的對象符合Spring的DAO接口
  • targetPackage與targetProject: sqlMapGenerator子節點同樣, 都是必選的.
  • implementationPackage:若是指定了該屬性,實現類就會生成在這個包中.

該元素支持<property>子元素設置的屬性:

  • enableSubPackages: 若是true,MBG會根據catalog和schema來生成子包.若是false就會直接用targetPackage屬性.默認爲false.
  • exampleMethodVisibility
  • methodNameCalculator
  • rootInterface
  • useLegacyBuilder

這幾個屬性不太經常使用,具體做用請看完整的文檔.

3.9 table子節點

該元素至少要配置一個,能夠配置多個.該元素用來配置要經過內省的表.只有配置的纔會生成實體類和其餘文件(注意,table裏面不少參數都是對javaModelGenerator,context等元素的默認屬性的一個複寫.).

該元素有一個必選屬性:

  • tableName:指定要生成的表名,可使用SQL通配符匹配多個表.若是要生成所有的表,能夠設置爲"%".

該元素包含多個可選屬性:

  • schema:數據庫的schema,可使用SQL通配符匹配.若是設置了該值,生成SQL的表名會變成如schema.tableName的形式.
  • catalog:數據庫的catalog,若是設置了該值,生成SQL的表名會變成如catalog.tableName的形式.
  • alias:若是指定,這個值會用在生成的select查詢SQL的表的別名和列名上.列名會被別名爲 alias_actualColumnName(別名_實際列名) 這種模式.
  • domainObjectName:生成的domain類的名字,若是不設置,直接使用表名做爲domain類的名字.
  • enableInsert:(默認true):指定是否生成insert語句.
  • enableSelectByPrimaryKey:(默認true):指定是否生成按照主鍵查詢對象的語句(就是getById或get).
  • enableSelectByExample:(默認true):MyBatis3Simple爲false,指定是否生成動態查詢語句.
  • enableUpdateByPrimaryKey:(默認true):指定是否生成按照主鍵修改對象的語句(即update).
  • enableDeleteByPrimaryKey:(默認true):指定是否生成按照主鍵刪除對象的語句(即delete).
  • enableDeleteByExample:(默認true):MyBatis3Simple爲false,指定是否生成動態刪除語句.
  • enableCountByExample:(默認true):MyBatis3Simple爲false,指定是否生成動態查詢總條數語句(用於分頁的總條數查詢).
  • enableUpdateByExample:(默認true):MyBatis3Simple爲false,指定是否生成動態修改語句(只修改對象中不爲空的屬性).
  • selectByPrimaryKeyQueryId:DBA跟蹤工具會用到,具體請看詳細文檔.
  • selectByExampleQueryId:DBA跟蹤工具會用到,具體請看詳細文檔.
  • modelType:參考context元素的defaultModelType,至關於覆蓋.
  • escapeWildcards:這個屬性表示當查詢列,是否對schema和表名中的SQL通配符 ('_' and '%') 進行轉義. 對於某些驅動當schema或表名中包含SQL通配符時(例如,一個表名是MY_TABLE,有一些驅動須要將下劃線進行轉義)是必須的.默認值是false.
  • delimitIdentifiers:參考tableName的解釋,注意,默認的delimitIdentifiers是雙引號,若是相似MYSQL這樣的數據庫,使用的是`(反引號,那麼還須要設置context的beginningDelimiter和endingDelimiter屬性)
  • delimitAllColumns:設置是否全部生成的SQL中的列名都使用標識符引發來.默認爲false,delimitIdentifiers參考context的屬性

該元素包含多個可用的<property>子元素,可選屬性爲:

  • constructorBased:和<javaModelGenerator>中的屬性含義同樣.
  • ignoreQualifiersAtRuntime:生成的SQL中的表名將不會包含schema和catalog前綴.
  • immutable:和<javaModelGenerator>中的屬性含義同樣.
  • modelOnly:此屬性用於配置是否爲表只生成實體類.若是設置爲true就不會有Mapper接口.若是配置了<sqlMapGenerator>,而且modelOnly爲true,那麼XML映射文件中只有實體對象的映射元素(<resultMap>).若是爲true還會覆蓋屬性中的enableXXX方法,將不會生成任何CRUD方法.
  • rootClass:和<javaModelGenerator>中的屬性含義同樣.
  • rootInterface:和<javaClientGenerator>中的屬性含義同樣.
  • runtimeCatalog:運行時的catalog,當生成表和運行環境的表的catalog不同的時候可使用該屬性進行配置.
  • runtimeSchema:運行時的schema,當生成表和運行環境的表的schema不同的時候可使用該屬性進行配置.
  • runtimeTableName:運行時的tableName,當生成表和運行環境的表的tableName不同的時候可使用該屬性進行配置.
  • selectAllOrderByClause:該屬性值會追加到selectAll方法後的SQL中,會直接跟order by拼接後添加到SQL末尾.
  • useActualColumnNames:若是設置爲true,那麼MBG會使用從數據庫元數據獲取的列名做爲生成的實體對象的屬性. 若是爲false(默認值),MGB將會嘗試將返回的名稱轉換爲駝峯形式. 在這兩種狀況下,能夠經過 元素顯示指定,在這種狀況下將會忽略這個(useActualColumnNames)屬性.
  • useColumnIndexes:若是是true,MBG生成resultMaps的時候會使用列的索引,而不是結果中列名的順序.
  • useCompoundPropertyNames:若是是true,那麼MBG生成屬性名的時候會將列名和列備註接起來. 這對於那些經過第四代語言自動生成列(例如:FLD22237),可是備註包含有用信息(例如:"customer id")的數據庫來講頗有用. 在這種狀況下,MBG會生成屬性名FLD2237_CustomerId.

除了<property>子元素外,<table>還包含如下子元素:

  • generatedKey (0個或1個)
  • columnRenamingRule (0個或1個)
  • columnOverride (0個或多個)
  • ignoreColumn (0個或多個)

3.9.1 generatedKey子節點

這個元素用來指定自動生成主鍵的屬性(identity字段或者sequences序列).若是指定這個元素,MBG在生成insert的SQL映射文件中插入一個<selectKey>元素. 這個元素很是重要,這個元素包含下面兩個必選屬性:

  • column:主鍵的列名
  • sqlStatement:要生成的selectKey語句,有如下可選項:
  • Cloudscape:至關於selectKey的SQL爲:VALUES IDENTITY_VAL_LOCAL()
  • DB2 :至關於selectKey的SQL爲:VALUES IDENTITY_VAL_LOCAL()
  • DB2_MF :至關於selectKey的SQL爲:SELECT IDENTITY_VAL_LOCAL() FROM SYSIBM.SYSDUMMY1
  • Derby :至關於selectKey的SQL爲:VALUES IDENTITY_VAL_LOCAL()
  • HSQLDB :至關於selectKey的SQL爲:CALL IDENTITY()
  • Informix :至關於selectKey的SQL爲:select dbinfo('sqlca.sqlerrd1') from systables where tabid=1
  • MySql :至關於selectKey的SQL爲:SELECT LAST_INSERT_ID()
  • SqlServer :至關於selectKey的SQL爲:SELECT SCOPE_IDENTITY()
  • SYBASE :至關於selectKey的SQL爲:SELECT @@IDENTITY
  • JDBC :至關於在生成的insert元素上添加useGeneratedKeys="true"和keyProperty屬性

這個元素還包含兩個可選屬性:

  • identity:
    • 當設置爲true時,該列會被標記爲identity列,而且<selectKey>元素會被插入在insert後面.
    • 當設置爲false時,<selectKey>會插入到insert以前(一般是序列).
    • 重要:即便type屬性指定爲post,仍然須要爲identity列將該參數設置爲true. 這將標誌MBG從插入列表中刪除該列.默認值是false.
  • type:
    • 當type爲post而且identity爲true的時候生成的<selectKey>中的order爲AFTER,
    • 當type爲pre的時候,identity只能爲false,生成的<selectKey>中的order爲BEFORE.
    • 能夠這麼理解,自動增加的列只有插入到數據庫後才能獲得ID,因此是AFTER,使用序列時,只有先獲取序列以後,才能插入數據庫,因此是BEFORE.
配置1: 	
<table tableName="user login info" domainObjectName="UserLoginInfo">
  	<generatedKey column="id" sqlStatement="Mysql"/>
</table>			
<insert id="insert" parameterType="test.model.UserLoginInfo">
	<selectKey keyProperty="id" order="BEFORE" resultType="java.lang.Integer">
  		SELECT LAST_INSERT_ID()
	</selectKey>
	insert into `user login info` (Id, username, logindate, loginip)
	values (#{id,jdbcType=INTEGER}, #{username,jdbcType=VARCHAR}, #{logindate,jdbcType=TIMESTAMP}, #{loginip,jdbcType=VARCHAR})
</insert>
配置2: 
<table tableName="user login info" domainObjectName="UserLoginInfo">
  	<generatedKey column="id" sqlStatement="select SEQ_ID.nextval from dual"/>
</table>
<insert id="insert" parameterType="test.model.UserLoginInfo">
  	<selectKey keyProperty="id" order="BEFORE" resultType="java.lang.Integer">
    	select SEQ_ID.nextval from dual
  	</selectKey>
  	insert into `user login info` (Id, username, logindate, loginip)
  	values (#{id,jdbcType=INTEGER}, #{username,jdbcType=VARCHAR}, #{logindate,jdbcType=TIMESTAMP},#{loginip,jdbcType=VARCHAR})
</insert>
配置3:
<table tableName="user login info" domainObjectName="UserLoginInfo">
  	<generatedKey column="id" sqlStatement="JDBC"/>
</table>
<insert id="insert" keyProperty="id" parameterType="test.model.UserLoginInfo" useGeneratedKeys="true">
	insert into `user login info` (username, logindate, loginip)
	values (#{username,jdbcType=VARCHAR}, #{logindate,jdbcType=TIMESTAMP}, #{loginip,jdbcType=VARCHAR})
</insert>		

3.9.2 columnRenamingRule子節點

該元素會在根據表中列名計算對象屬性名以前先重命名列名,很是適合用於表中的列都有公用的前綴字符串的時候, 好比列名爲:CUST_ID,CUST_NAME,CUST_EMAIL,CUST_ADDRESS等, 那麼就能夠設置searchString爲"^CUST_",並使用空白替換, 那麼生成的Customer對象中的屬性名稱就不是custId,custName等,而是先被替換爲ID,NAME,EMAIL,而後變成屬性:id,name,email. 注意,MBG是使用java.util.regex.Matcher.replaceAll來替換searchString和replaceString的,若是使用了columnOverride元素,該屬性無效.

該元素有一個必選屬性:

  • searchString:定義將被替換的字符串的正則表達式.

該元素有一個可選屬性:

  • replaceString:這是一個用來替換搜索字符串列每個匹配項的字符串.若是沒有指定,就會使用空字符串.

關於<table>的<property>屬性useActualColumnNames對此的影響能夠查看完整文檔.

3.9.3 columnOverride子節點

該元素可選,能夠配置多個. 該元素從將某些屬性默認計算的值更改成指定的值.

該元素有一個必選屬性:

  • column:要重寫的列名.

該元素有多個可選屬性:

  • property:要使用的Java屬性的名稱.若是沒有指定,MBG會根據列名生成.
  • javaType:該列屬性值爲徹底限定的Java類型.若是須要,這能夠覆蓋由JavaTypeResolver計算出的類型.
  • jdbcType:該列的JDBC類型(INTEGER, DECIMAL, NUMERIC, VARCHAR等等). 若是須要,這能夠覆蓋由JavaTypeResolver計算出的類型.
  • typeHandler:用戶定義的須要用來處理這列的類型處理器.它必須是一個繼承iBATIS的TypeHandler類或TypeHandlerCallback接口(該接口很容易繼承)的全限定的類名.若是沒有指定或者是空白,iBATIS會用默認的類型處理器來處理類型.重要:MBG不會校驗這個類型處理器是否存在或者可用. MGB只是簡單的將這個值插入到生成的SQL映射的配置文件中.
  • delimitedColumnName:指定是否應在生成的SQL的列名稱上增長分隔符. 若是列的名稱中包含空格,MGB會自動添加分隔符, 因此這個重寫只有當列名須要強制爲一個合適的名字或者列名是數據庫中的保留字時是必要的.

3.9.4 ignoreColumn子節點

該元素可選,能夠配置多個. 該元素能夠用來屏蔽不須要生成的列.

該元素有一個必選屬性:

  • column:要忽略的列名.

該元素還有一個可選屬性:

  • delimitedColumnName:匹配列名的時候是否區分大小寫.若是爲true則區分.默認值爲false,不區分大小寫.
相關文章
相關標籤/搜索