欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

mybatis配置文件簡介_動(dòng)力節(jié)點(diǎn)Java學(xué)院整理

 更新時(shí)間:2017年09月05日 11:06:45   作者:limingnihao  
這篇文章主要為大家詳細(xì)介紹了mybatis配置文件簡介的相關(guān)資料,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下

在定義sqlSessionFactory時(shí)需要指定MyBatis主配置文件: 

Xml代碼  

<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean"> 
 <property name="configLocation" value="classpath:mybatis-config.xml" /> 
 <property name="dataSource" ref="dataSource" /> 
</bean> 

MyBatis配置文件中大標(biāo)簽configuration下子標(biāo)簽包括:
configuration
|--- properties
|--- settings
|--- typeAliases
|--- typeHandlers
|--- objectFactory
|--- plugins
|--- environments
|--- |--- environment
|--- |--- |--- transactionManager
|--- |--- |__ dataSource
|__ mappers 

properties屬性 

properties和java的.properties的配置文件有關(guān)。配置properties的resource指定.properties的路徑,然后再在properties標(biāo)簽下配置property的name和value,則可以替換.properties文件中相應(yīng)屬性值。

Xml代碼  

<!-- 屬性替換 --> 
<properties resource="mysql.properties"> 
 <property name="jdbc.driverClassName" value="com.mysql.jdbc.Driver"/> 
 <property name="jdbc.url" value="jdbc:mysql://localhost:3306/student_manager"/> 
 <property name="username" value="root"/> 
 <property name="password" value="limingnihao"/> 
</properties> 

settings設(shè)置

這是MyBatis 修改操作運(yùn)行過程細(xì)節(jié)的重要的步驟。下方這個(gè)表格描述了這些設(shè)置項(xiàng)、含義和默認(rèn)值。

例如:

Xml代碼  

<settings> 
 <setting name="cacheEnabled" value="true" /> 
 <setting name="lazyLoadingEnabled" value="true" /> 
 <setting name="multipleResultSetsEnabled" value="true" /> 
 <setting name="useColumnLabel" value="true" /> 
 <setting name="useGeneratedKeys" value="false" /> 
 <setting name="enhancementEnabled" value="false" /> 
 <setting name="defaultExecutorType" value="SIMPLE" /> 
</settings> 

typeAliases類型別名 

類型別名是Java 類型的簡稱。
它僅僅只是關(guān)聯(lián)到XML 配置,簡寫冗長的JAVA 類名。例如:

Xml代碼  

<typeAliases> 
 <typeAlias alias="UserEntity" type="com.manager.data.model.UserEntity" /> 
 <typeAlias alias="StudentEntity" type="com.manager.data.model.StudentEntity" /> 
 <typeAlias alias="ClassEntity" type="com.manager.data.model.ClassEntity" /> 
</typeAliases> 

使用這個(gè)配置,“StudentEntity”就能在任何地方代替“com.manager.data.model.StudentEntity”被使用。

對(duì)于普通的Java類型,有許多內(nèi)建的類型別名。它們都是大小寫不敏感的,由于重載的名字,要注意原生類型的特殊處理。


typeHandlers類型句柄 

無論是MyBatis在預(yù)處理語句中設(shè)置一個(gè)參數(shù),還是從結(jié)果集中取出一個(gè)值時(shí),類型處理器被用來將獲取的值以合適的方式轉(zhuǎn)換成Java類型。下面這個(gè)表格描述了默認(rèn)的類型處理器。

你可以重寫類型處理器或創(chuàng)建你自己的類型處理器來處理不支持的或非標(biāo)準(zhǔn)的類型。要這樣做的話,簡單實(shí)現(xiàn)TypeHandler接口(org.mybatis.type),然后映射新的類型處理器類到Java類型,還有可選的一個(gè)JDBC類型。然后再typeHandlers中添加這個(gè)類型處理器。

新定義的類型處理器將會(huì)覆蓋已經(jīng)存在的處理Java的String類型屬性和VARCHAR參數(shù)及結(jié)果的類型處理器。要注意MyBatis不會(huì)審視數(shù)據(jù)庫元信息來決定使用哪種類型,所以你必須在參數(shù)和結(jié)果映射中指定那是VARCHAR類型的字段,來綁定到正確的類型處理器上。這是因?yàn)镸yBatis直到語句被執(zhí)行都不知道數(shù)據(jù)類型的這個(gè)現(xiàn)實(shí)導(dǎo)致的。 

Java代碼  

public class LimingStringTypeHandler implements TypeHandler { 
 
 @Override 
 public void setParameter(PreparedStatement ps, int i, Object parameter, JdbcType jdbcType) throws SQLException { 
  System.out.println("setParameter - parameter: " + ((String) parameter) + ", jdbcType: " + jdbcType.TYPE_CODE); 
  ps.setString(i, ((String) parameter)); 
 } 
 
 @Override 
 public Object getResult(ResultSet rs, String columnName) throws SQLException { 
  System.out.println("getResult - columnName: " + columnName); 
  return rs.getString(columnName); 
 } 
 
 @Override 
 public Object getResult(CallableStatement cs, int columnIndex) throws SQLException { 
  System.out.println("getResult - columnIndex: " + columnIndex); 
  return cs.getString(columnIndex); 
 } 
} 

在配置文件的typeHandlers中添加typeHandler標(biāo)簽。

Xml代碼  

<typeHandlers> 
 <typeHandler javaType="String" jdbcType="VARCHAR" handler="liming.student.manager.type.LimingStringTypeHandler"/> 
</typeHandlers> 

ObjectFactory對(duì)象工廠 

每次MyBatis 為結(jié)果對(duì)象創(chuàng)建一個(gè)新實(shí)例,都會(huì)用到ObjectFactory。默認(rèn)的ObjectFactory 與使用目標(biāo)類的構(gòu)造函數(shù)創(chuàng)建一個(gè)實(shí)例毫無區(qū)別,如果有已經(jīng)映射的參數(shù),那也可能使用帶參數(shù)的構(gòu)造函數(shù)。
如果你重寫ObjectFactory 的默認(rèn)操作,你可以通過繼承org.apache.ibatis.reflection.factory.DefaultObjectFactory創(chuàng)建一下你自己的。

ObjectFactory接口很簡單。它包含兩個(gè)創(chuàng)建用的方法,一個(gè)是處理默認(rèn)構(gòu)造方法的,另外一個(gè)是處理帶參數(shù)構(gòu)造方法的。最終,setProperties方法可以被用來配置ObjectFactory。在初始化你的ObjectFactory實(shí)例后,objectFactory元素體中定義的屬性會(huì)被傳遞給setProperties方法。

Java代碼  

public class LimingObjectFactory extends DefaultObjectFactory { 
 
 private static final long serialVersionUID = -399284318168302833L; 
 
 @Override 
 public Object create(Class type) { 
  return super.create(type); 
 } 
 
 @Override 
 public Object create(Class type, List<Class> constructorArgTypes, List<Object> constructorArgs) { 
  System.out.println("create - type: " + type.toString()); 
  return super.create(type, constructorArgTypes, constructorArgs); 
 } 
 
 @Override 
 public void setProperties(Properties properties) { 
  System.out.println("setProperties - properties: " + properties.toString() + ", someProperty: " + properties.getProperty("someProperty")); 
  super.setProperties(properties); 
 } 
 
} 

配置文件中添加objectFactory標(biāo)簽

Xml代碼  

<objectFactory type="liming.student.manager.configuration.LimingObjectFactory"> 
 <property name="someProperty" value="100"/> 
</objectFactory> 

4.6 plugins插件 

MyBatis允許你在某一點(diǎn)攔截已映射語句執(zhí)行的調(diào)用。默認(rèn)情況下,MyBatis允許使用插件來攔截方法調(diào)用:

Executor(update, query, flushStatements, commit, rollback, getTransaction, close, isClosed)

ParameterHandler(getParameterObject, setParameters)

ResultSetHandler(handleResultSets, handleOutputParameters)

StatementHandler(prepare, parameterize, batch, update, query) 

這些類中方法的詳情可以通過查看每個(gè)方法的簽名來發(fā)現(xiàn),而且它們的源代碼在MyBatis的發(fā)行包中有。你應(yīng)該理解你覆蓋方法的行為,假設(shè)你所做的要比監(jiān)視調(diào)用要多。如果你嘗試修改或覆蓋一個(gè)給定的方法,你可能會(huì)打破MyBatis的核心。這是低層次的類和方法,要謹(jǐn)慎使用插件。
使用插件是它們提供的非常簡單的力量。簡單實(shí)現(xiàn)攔截器接口,要確定你想攔截的指定簽名。 

environments環(huán)境

MyBatis 可以配置多個(gè)環(huán)境。這可以幫助你SQL 映射對(duì)應(yīng)多種數(shù)據(jù)庫等。

mappers映射器

這里是告訴MyBatis 去哪尋找映射SQL 的語句??梢允褂妙惵窂街械馁Y源引用,或者使用字符,輸入確切的URL 引用。

例如: 

Xml代碼  

<mappers> 
 <mapper resource="com/manager/data/maps/UserMapper.xml" /> 
 <mapper resource="com/manager/data/maps/StudentMapper.xml" /> 
 <mapper resource="com/manager/data/maps/ClassMapper.xml" /> 
</map

以上就是本文的全部內(nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

最新評(píng)論