mybatis支持屬性使用駝峯的命名

在基本的 MyBatis 中,session 工廠可使用 SqlSessionFactoryBuilder 來建立。而在 MyBatis-spring 中,則使用 SqlSessionFactoryBean 來替代。html

typeAliasesPackage屬性

該屬性能夠給包中的類註冊別名,註冊後能夠直接使用類名(在mybatis的XXmapper.xml配置文件中直接使用類名),而不用使用全限定的類名(就是不用包含包名)。java

該屬性能夠配置多個,能夠用,;\t\n進行分割。可是不支持Ant風格的路徑web

http://blog.csdn.net/isea533/article/details/45640319spring

最新版本3.2.0 - 2015-09-02

  • 移除MapperInterceptor攔截器,之後不能在經過攔截器配置sql

  • 增長mybatis-spring特殊支持,主要是根據mybatis-spring項目增長了下面兩個類:數據庫

    • tk.mybatis.spring.mapper.MapperScannerConfigurersession

    • tk.mybatis.spring.mapper.MapperFactoryBeanmybatis

  • 這兩個類和MyBatis提供的區別是增長了MapperHelper屬性,經過在MapperScannerConfigurer中使用properties屬性注入配置app

  • 這兩個類,在全名上和MyBatis的區別是org.mybatis.xxx改成了tk.mybatis.xxx,名字相近,更方便修改配置dom

  • 和Spring集成方法:

<bean class="tk.mybatis.spring.mapper.MapperScannerConfigurer">     <property name="basePackage" value="com.isea533.mybatis.mapper"/>     <property name="properties">         <value>             mappers=tk.mybatis.mapper.common.Mapper         </value>     </property> </bean>
  • 增長style屬性配置,用來配置對象名/字段和表名/字段之間的轉換方式,可選值:

    • normal:使用實體類名/屬性名做爲表名/字段名

    • camelhump:這是默認值,駝峯轉換爲下劃線形式

    • uppercase:轉換爲大寫

    • lowercase:轉換爲小寫

  • 增長實體註解@NameStyle,該註解優先於全局配置style

@Bean 
    public MapperScannerConfigurer mapperScannerConfigurer() {
        MapperScannerConfigurer mapperScannerConfigurer = new MapperScannerConfigurer();
        mapperScannerConfigurer.setSqlSessionFactoryBeanName("sqlSessionFactory");
        mapperScannerConfigurer.setBasePackage("com.domain.mapper");
        Properties properties1 = new Properties();
        properties1.setProperty("mappers", "com.feizhou.safety.web.util.MyMapper");
        properties1.setProperty("notEmpty", "false");
        properties1.setProperty("IDENTITY", "MYSQL");
        properties1.setProperty("style", "normal");
        Properties properties = properties1;
        mapperScannerConfigurer.setProperties(properties);
        return mapperScannerConfigurer;
    }

 

https://www.oschina.net/news/65790/mybatis-mapper-3-2-0

 

參考:http://blog.chinaunix.net/uid-26244834-id-3268354.html 

須要開啓一個配置: 

Java代碼   收藏代碼
  1. public class Configuration {  
  2.   
  3.   protected Environment environment;  
  4.   
  5.   protected boolean safeRowBoundsEnabled = true;  
  6.   protected boolean mapUnderscoreToCamelCase = false;  
  7.   protected boolean lazyLoadingEnabled = false;  



mapUnderscoreToCamelCase:是否啓用下劃線與駝峯式命名規則的映射(如first_name => firstName) 

使用: 
spring配置: 
    

Xml代碼   收藏代碼
  1. <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">  
  2.           <property name="mapperLocations" value="classpath:sqlMapper/*" />  
  3.           <property name="dataSource" ref="dataSource" />  
  4.           <property name="configLocation" value="classpath:mybatis-config.xml"></property>  
  5.      </bean>  


mybatis-config.xml: 

Xml代碼   收藏代碼
  1. <configuration>  
  2.      <settings>  
  3.           <setting name="mapUnderscoreToCamelCasevalue="true" />  
  4.      </settings>  
  5. </configuration>  



數據庫字段: 
is_man 

bean: 
private Integer isMan; 

mapper配置不須要寫字段與屬性的配置,會自動映射。 

http://flysnowxf.iteye.com/blog/1678780

3.3.8 <table> 元素

該元素至少要配置一個,能夠配置多個。

該元素用來配置要經過內省的表。只有配置的纔會生成實體類和其餘文件。

該元素有一個必選屬性:

  • tableName:指定要生成的表名,可使用SQL通配符匹配多個表。

例如要生成所有的表,能夠按以下配置:

<table tableName="%" />

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

  • schema:數據庫的schema,可使用SQL通配符匹配。若是設置了該值,生成SQL的表名會變成如schema.tableName的形式。
  • catalog:數據庫的catalog,若是設置了該值,生成SQL的表名會變成如catalog.tableName的形式。
  • alias:若是指定,這個值會用在生成的select查詢SQL的表的別名和列名上。 列名會被別名爲 alias_actualColumnName(別名_實際列名) 這種模式。
  • domainObjectName:生成對象的基本名稱。若是沒有指定,MBG會自動根據表名來生成名稱。
  • enableXXX:XXX表明多種SQL方法,該屬性用來指定是否生成對應的XXX語句。
  • selectByPrimaryKeyQueryId:DBA跟蹤工具會用到,具體請看詳細文檔。
  • selectByExampleQueryId:DBA跟蹤工具會用到,具體請看詳細文檔。
  • modelType:和<context>defaultModelType含義同樣,這裏能夠針對表進行配置,這裏的配置會覆蓋<context>defaultModelType配置。
  • escapeWildcards:這個屬性表示當查詢列,是否對schema和表名中的SQL通配符 ('_' and '%') 進行轉義。 對於某些驅動當schema或表名中包含SQL通配符時(例如,一個表名是MY_TABLE,有一些驅動須要將下劃線進行轉義)是必須的。默認值是false
  • delimitIdentifiers:是否給標識符增長**分隔符**。默認false。當catalog,schematableName中包含空白時,默認爲true
  • delimitAllColumns:是否對全部列添加**分隔符**。默認false

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

  • constructorBased:和<javaModelGenerator>中的屬性含義同樣。
  • ignoreQualifiersAtRuntime:生成的SQL中的表名將不會包含schemacatalog前綴。
  • immutable:和<javaModelGenerator>中的屬性含義同樣。
  • modelOnly:此屬性用於配置是否爲表只生成實體類。若是設置爲true就不會有Mapper接口。若是配置了<sqlMapGenerator>,而且modelOnlytrue,那麼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>還包含如下子元素:

http://blog.csdn.net/isea533/article/details/42102297

相關文章
相關標籤/搜索