MyBatis 配置文件 configuration
<!-- 引入外部資源文件,將數據庫配置設爲外部鏈接 -->
<properties resource="db.properties"></properties>
<environment id= "development" >
<!-- 使用 jdbc事務管理-->
<transactionManager type = "JDBC"/>
<!-- 數據庫連接池-->
<dataSource type = "POOLED">
<property name= "driver" value = "${jdbc.driverClass}"/>
<property name= "url" value = "${jdbc.jdbcUrl}"/>
<property name= "username" value = "${jdbc.user}" />
<property name= "password" value = "${jdbc.password}"/>
</dataSource >
</environment >
<settings>
<!-- 全局映射器啓用緩存 -->
<setting name="cacheEnabled" value="true" />
<!-- 查詢時,關閉關聯對象即時加載以提高性能 -->
<setting name="lazyLoadingEnabled" value="true" />
<!-- 設置關聯對象加載的形態,此處爲按需加載字段 (加載字段由 SQL指 定 ),不會加載關聯表的所有字段,以提高性能 -->
<setting name="aggressiveLazyLoading" value="false" />
<!-- 對於未知的 SQL查詢,允許返回不同的結果集以達到通用的效果 -->
<setting name="multipleResultSetsEnabled" value="true" />
<!-- 允許使用列標籤代替列名 -->
<setting name="useColumnLabel" value="true" />
<!-- 允許使用自定義的主鍵值 (比如由程序生成的 UUID 32位編碼作爲鍵值 ),數據表的 PK生成策略將被覆蓋 -->
<setting name="useGeneratedKeys" value="true" />
<!-- 給予被嵌套的 resultMap以字段 -屬性的映射支持 -->
<setting name="autoMappingBehavior" value="FULL" />
<!-- 對於批量更新操作緩存 SQL以提高性能 -->
<setting name="defaultExecutorType" value="BATCH" />
<!-- 數據庫超過 25000秒仍未響應則超時 -->
<setting name="defaultStatementTimeout" value="25000" />
</settings>
typeAliases別名處理器
別名是爲 Java 類型命名一個短的名字。它只和 XML 配置有關,只用來減少類名重複的部分。
配置了 mybatis-config.xml 會影響XXXMapper.xml 的使用;
mybatis總的配置文件中:
1、
<typeAliases>
<!-- 單獨爲 Perosn進行別名設置 -->
<typeAlias type ="com.zhao.mybatis.entities.Person" alias= "Person"/>
</typeAliases>
2、 或者使用如下的方式掃描某個包下的bean,集體配置別名
<typeAliases >
<!--批處理別名,掃描整個包下的類 -->
<package name= "com.zhao.mybatis.entities"/>
</typeAliases>
myBatis 配置文件介紹
typeHandlers 類型處理器:
用於 java類型和jdbc類型映射,默認已經基本滿足Mybatis的映射。
environments 環境變量:
MyBatis可以配置多種環境。這會將SQL映射應用於多種數據庫之中。例如, 爲開發要設置不同的配置,測試和生產環境。 或者可能有多種生產級數據庫卻共享 相同的模式, 所以你會想對不同數據庫使用相同的SQL映射。但是每個數據庫對應一個SqlSessionFactory。
transactionManager 事務管理器:
在MyBatis中有兩種事務管理器類型(也就是type=”[JDBC|MANAGED]”):
JDBC – 這個配置直接簡單使用了JDBC的提交和回滾設置。 它依賴於從數據源得到的連接來管理事務範圍。
MANAGED – 這個配置幾乎沒做什麼。它從來不提交或回滾一個連接。而它會讓容器來管理事務的整個生命週期(比如Spring或JAVAEE應用服務器的上下文)默認情況下它會關閉連接。然而一些容器並不希望這樣,因此如果你需要從連接中停止它, 將closeConnection屬性設置爲false 。
dataSource 數據源:
dataSource 元素使用基本的JDBC數據源接口來配置JDBC連接對象的資源。有三種內建的數據源類型
UNPOOLED – 這個數據源的實現是每次被請求時簡單打開和關閉連接。它有一點慢,這是對簡單應用程序的一個很好的選擇,因爲它不需要及時的可用連接。不同的數據庫對這個的表現也是不一樣的,所以對某些數據庫來說配置數據源並不重要,這個配置也是閒置的。UNPOOLED類型的數據源僅僅用來配置以下5種屬性 :
• driver – 這是JDBC驅動的Java類的完全限定名(如果你的驅動包含,它也不是 數據源類)。
• url – 這是數據庫的JDBC_URL地址。
• username – 登錄數據庫的用戶名。
• password – 登錄數據庫的密碼。
• defaultTransactionIsolationLevel – 默認的連接事務隔離級別。作爲可選項,你可以傳遞數據庫驅動的屬性。要這樣做,屬性的前綴是以“driver.”開頭的,例如:driver.encoding=UTF8這樣就會傳遞以值“UTF8”來傳遞屬性“ encoding”,它通過 DriverManager.getConnection(url,driverProperties)方法傳遞給數據庫驅動。
POOLED – 這是JDBC連接對象的數據源連接池的實現, 用來避免創建新的連接實例時必要的初始連接和認證時間。這是一種當前Web應用程序用來快速響應請求很流行的方法。除了上述(UNPOOLED)的屬性之外,還有很多屬性可以用來配置 POOLED數據源。poolMaximumActiveConnections,poolMaximumIdleConnections 等等
JNDI – 這個數據源的實現是爲了使用如Spring或應用服務器這類的容器 ,容器可以集中或在外部配置數據源,然後放置一個JNDI上下文的引用。這個數據源配置只需要兩個屬性:
initial_context – 這個屬性用來從初始上下文中尋找環境(也就是initialContext.lookup(initial——context)。這是個可選屬性,如果被忽略,那麼data_source屬性將會直接以initialContext爲背景再次尋找。
data_source – 這是引用數據源實例位置的上下文的路徑。它會以由initial_context查詢返回的環境爲背景來查找,如果initial_context沒有返回結果時,直接以初始上下文爲環境來查找。
mappsers:mapper文件的路徑,可以使用相對於類路徑的資源引用,或者字符表示,或url引用的完全限定名。
<mapper resource="org/mybatis/builder/AuthorMapper.xml"/>
資源定位
<mapper url="file:///var/mappers/BlogMapper.xml"/>
文件url定位
<mapper class="org.mybatis.builder.BlogMapper"/>
java類定位
<package name="org.mybatis.builder"/>
java包定位