1.properties屬性
MyBatis按照下面的順序來加載屬性:
- 在properties元素體內(nèi)定義的屬性首先被讀取·。
- 然后會(huì)讀取properties元素中國source或url加載的屬性,它會(huì)覆蓋已讀取的同名屬性。
- 最后讀取parameterType傳遞的屬性,它會(huì)覆蓋已讀取的同名屬性
建議
不要在properties元素體內(nèi)添加任何屬性值,只將屬性值定義在properties文件中。
在properties文件中定義屬性名要有一定的特殊性,如jdbc.username
db.properties
jdbc.driver=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/sams?serverTimezone=UTC
jdbc.username=root
jdbc.password=root
mybatis-config.xml
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration
PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
<properties resource="db.properties"></properties>
<environments default="development">
<environment id="development">
<transactionManager type="JDBC"></transactionManager>
<dataSource type="POOLED">
<property name="driver" value="${jdbc.driver}"></property>
<property name="url" value="${jdbc.url}"></property>
<property name="username" value="${jdbc.username}"></property>
<property name="password" value="${jdbc.password}"></property>
</dataSource>
</environment>
</environments>
<!--加載映射文件-->
<mappers>
<mapper resource="mapper/adminMap.xml"></mapper>
<mapper resource="mapper/mapper.xml"></mapper>
</mappers>
</configuration>
2.settings全局參數(shù)配置
mabatis框架運(yùn)行時(shí)可以調(diào)整一些運(yùn)行參數(shù)
[引用]
<!-- settings是 MyBatis 中極為重要的調(diào)整設(shè)置,它們會(huì)改變 MyBatis 的運(yùn)行時(shí)行為。 -->
<settings>
<!-- 該配置影響的所有映射器中配置的緩存的全局開關(guān)。默認(rèn)值true -->
<setting name="cacheEnabled" value="true"/>
<!--延遲加載的全局開關(guān)。當(dāng)開啟時(shí),所有關(guān)聯(lián)對(duì)象都會(huì)延遲加載。 特定關(guān)聯(lián)關(guān)系中可通過設(shè)置fetchType屬性來覆蓋該項(xiàng)的開關(guān)狀態(tài)。默認(rèn)值false -->
<setting name="lazyLoadingEnabled" value="true"/>
<!-- 是否允許單一語句返回多結(jié)果集(需要兼容驅(qū)動(dòng))。 默認(rèn)值true -->
<setting name="multipleResultSetsEnabled" value="true"/>
<!-- 使用列標(biāo)簽代替列名。不同的驅(qū)動(dòng)在這方面會(huì)有不同的表現(xiàn), 具體可參考相關(guān)驅(qū)動(dòng)文檔或通過測試這兩種不同的模式來觀察所用驅(qū)動(dòng)的結(jié)果。默認(rèn)值true -->
<setting name="useColumnLabel" value="true"/>
<!-- 允許 JDBC 支持自動(dòng)生成主鍵,需要驅(qū)動(dòng)兼容。 如果設(shè)置為 true 則這個(gè)設(shè)置強(qiáng)制使用自動(dòng)生成主鍵,盡管一些驅(qū)動(dòng)不能兼容但仍可正常工作(比如 Derby)。 默認(rèn)值false -->
<setting name="useGeneratedKeys" value="false"/>
<!-- 指定 MyBatis 應(yīng)如何自動(dòng)映射列到字段或?qū)傩浴?NONE 表示取消自動(dòng)映射;PARTIAL 只會(huì)自動(dòng)映射沒有定義嵌套結(jié)果集映射的結(jié)果集。 FULL 會(huì)自動(dòng)映射任意復(fù)雜的結(jié)果集(無論是否嵌套)。 -->
<!-- 默認(rèn)值PARTIAL -->
<setting name="autoMappingBehavior" value="PARTIAL"/>
<setting name="autoMappingUnknownColumnBehavior" value="WARNING"/>
<!-- 配置默認(rèn)的執(zhí)行器。SIMPLE 就是普通的執(zhí)行器;REUSE 執(zhí)行器會(huì)重用預(yù)處理語句(prepared statements); BATCH 執(zhí)行器將重用語句并執(zhí)行批量更新。默認(rèn)SIMPLE -->
<setting name="defaultExecutorType" value="SIMPLE"/>
<!-- 設(shè)置超時(shí)時(shí)間,它決定驅(qū)動(dòng)等待數(shù)據(jù)庫響應(yīng)的秒數(shù)。 -->
<setting name="defaultStatementTimeout" value="25"/>
<setting name="defaultFetchSize" value="100"/>
<!-- 允許在嵌套語句中使用分頁(RowBounds)默認(rèn)值False -->
<setting name="safeRowBoundsEnabled" value="false"/>
<!-- 是否開啟自動(dòng)駝峰命名規(guī)則(camel case)映射,即從經(jīng)典數(shù)據(jù)庫列名 A_COLUMN 到經(jīng)典 Java 屬性名 aColumn 的類似映射。 默認(rèn)false -->
<setting name="mapUnderscoreToCamelCase" value="false"/>
<!-- MyBatis 利用本地緩存機(jī)制(Local Cache)防止循環(huán)引用(circular references)和加速重復(fù)嵌套查詢。
默認(rèn)值為 SESSION,這種情況下會(huì)緩存一個(gè)會(huì)話中執(zhí)行的所有查詢。
若設(shè)置值為 STATEMENT,本地會(huì)話僅用在語句執(zhí)行上,對(duì)相同 SqlSession 的不同調(diào)用將不會(huì)共享數(shù)據(jù)。 -->
<setting name="localCacheScope" value="SESSION"/>
<!-- 當(dāng)沒有為參數(shù)提供特定的 JDBC 類型時(shí),為空值指定 JDBC 類型。 某些驅(qū)動(dòng)需要指定列的 JDBC 類型,多數(shù)情況直接用一般類型即可,比如 NULL、VARCHAR 或 OTHER。 -->
<setting name="jdbcTypeForNull" value="OTHER"/>
<!-- 指定哪個(gè)對(duì)象的方法觸發(fā)一次延遲加載。 -->
<setting name="lazyLoadTriggerMethods" value="equals,clone,hashCode,toString"/>
</settings>
3.typeAliases(別名)重點(diǎn)
單個(gè)別名定義
指定報(bào)名,mybatis自動(dòng)掃描包中的類,自動(dòng)定義別名,別名就是類名(首字母大小寫不限制
)
<typeAliases >
<typeAlias type="cn.huan.mybatis.AdminBean" alias="AdminBean"></typeAlias>
</typeAliases>
批量別名定義
<typeAliases >
<package name="cn.huan"></package>
</typeAliases>
引用:
<select id="findUserById" parameterType="int" resultType="AdminBean">
SELECT * FROM admin WHERE a_id =#{a_id}
</select>
4.typeHandlers(類型處理器)
mybatis中通過typeHandkers完成jdbc類型和java類型的轉(zhuǎn)換
通常情況下,mybatis提供的類型處理器滿足日常需要。不需要自定義
5.mappers映射配置
通過resource加載單個(gè)映射文件
<mappers>
<mapper resource="mapper/adminMap.xml"></mapper>
<mapper resource="mapper/mapper.xml"></mapper>
</mappers>
通過url加載
<mappers>
<mapper url="E:\IDEA\Spring_maven\src\main\resources\mapper\adminMap.xml"></mapper>
</mappers>
通過mapper接口加載(單個(gè)加載)
(需要將mapper接口類名和mapper.xml映射文件名稱保持一致,且在一個(gè)目錄)
<mappers>
<mapper class="cn.mapper.AdminMapper"></mapper>
</mappers>
通過mapper接口加載(批量加載)
(需要將mapper接口類名和mapper.xml映射文件名稱保持一致,且在一個(gè)目錄)
<!--加載映射文件-->
<mappers>
<package name="cn.huan"></package>
</mappers>
上一篇:mybatis開發(fā)dao的方法(原始dao開發(fā)+mapper代理開發(fā))