MyBatis--主配置檔案詳解

bingguang1993發表於2018-06-01

MyBatis--主配置檔案詳解

主配置檔案可以隨便命名,其主要完成以下幾個功能:

  1. 註冊存放DB連線四要素的屬性檔案
  2. 註冊實體類的許可權定性類名的別名
  3. 配置MyBatis執行環境,即資料來源與事務管理器
  4. 註冊對映檔案

MyBatis.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="jdbc.properties"/>
    <!-- 配置MyBatis執行環境 -->
    <environments default="development">
        <environment id="development">
            <transactionManager type="JDBC"></transactionManager>
            <dataSource type="POOLED">
                <property name="driver" value="${jdbc.dirver}"/>  
                <property name="url" value="${jdbc.url}"/>  
                <property name="username" value="${jdbc.user}"/>  
                <property name="password" value="${jdbc.password}"/>  
            </dataSource>
        </environment>
    </environments>
    
    <!-- 註冊對映檔案 -->
    <mappers>  
        <mapper resource="com/hcx/dao/mapper.xml"/>   
        <!-- <mapper resource="com/hcx/dao/mapper2.xml"/>  -->
    </mappers>
</configuration>

一、註冊DB連線四要素屬性檔案

<!-- 註冊DB連線四要素的屬性檔案 -->
<properties resource="jdbc.properties"/>

二、指定實體類許可權定性類名的別名

1.<package/>方式

一般使用<package/>方式,這樣做的好處是會將該包中年所有實體類的簡單類名指定為別名。

<!--配置別名-->
<typeAliases>
    <package name="com.hcx.beans"/>
</typeAliases>

2.通過<typealias/>指定。

  • type:許可權定性類名
  • alias:別名

該方式的好處是,可以指定別名為簡單類名以外的其他名稱。當然,弊端是,必須逐個指定,比較繁瑣。

<!-- 註冊類的別名 -->
<typeAliases>
    <typeAlias type="com.hcx.beans.Student" alias="Student"/>
</typeAliases>

3.使用MyBatis內建的型別別名

基本型別:

基本型別.PNG

常用包裝型別:

常用包裝類.PNG

三、配置MyBatis的執行環境

主要是配置資料來源和事務管理器

1.<environments/>標籤

在<environments/>中可以包含多個執行環境<environment/>,但其default屬性指定了當前MyBatis執行時所選擇使用的環境。

environments標籤.PNG

2.<transactionManager/>標籤

<!-- 使用jdbc事務管理 -->
<transactionManager type="JDBC" />

該標籤用於指定MyBatis所使用的事務管理器。MyBatis支援兩種事務管理器;JDBC與MANAGED

  • JDBC:使用jdbc事務管理機制。即,通過connection的commit()方法提交,通過rollback方法回滾。但預設情況下,MyBatis將自動提交功能關閉了,改為了手動提交。即程式中需要顯式的對事務進行提交或回滾。
  • MANAGED:由容器來管理事務的整個生命週期(如Spring容器)

3.<dataSource/>標籤

該標籤用於配置MyBatis使用的資料來源型別與資料庫連線基本屬性。常見型別有:UNPOOLED、POOLED、JDNI等

  • UNPOOLED:不使用連線池。即每次請求,都會為其建立一個DB連線,使用完畢後,會馬上將此連線關閉。
  • POOLED:使用資料庫連線池來維護連線
  • JDNI:資料來源可以定義到應用的外部,通過JDNI容器獲取資料庫連線。

程式碼:

<dataSource type="POOLED">
    <property name="driver" value="com.mysql.jdbc.Driver"/>  
    <property name="url" value="jdbc:mysql://localhost:3306/test"/>  
    <property name="username" value="root"/>  
    <property name="password" value="root"/>  
</dataSource>

若要從屬性檔案中讀取DB連線四要素資訊,則使用如下方式:

<!-- 資料庫連線池 -->
<dataSource type="POOLED">
    <property name="driver" value="${jdbc.dirver}"/>  
    <property name="url" value="${jdbc.url}"/>  
    <property name="username" value="${jdbc.user}"/>  
    <property name="password" value="${jdbc.password}"/>  
</dataSource>

四、指定對映檔案

指定對映檔案的方式有多種,但所有的方式,都是指定在<mappers/>標籤中的。

1.<mapper resource="">方式

<!-- 註冊對映檔案 -->
<mappers>  
    <mapper resource="com/hcx/dao/mapper.xml"/>   
    <mapper resource="com/hcx/dao/mapper2.xml"/>   
</mappers>

2.<mapper url="">方式

<mappers>
    <mapper url="file:///E:\workspace\mybatisPrimary\src\com\hcx\dao\IStudentDao.xml"/>
</mappers>

該方式的好處是,可以將對映檔案放在本地或網路的任意位置,通過url地址即可直接訪問。當通常對映檔案是存放在當前應用中的,所以該方式不常用。

3.<mapper class="">方式

class屬性值為dao介面的全類名

<mappers>  
    <mapper class="com.hcx.dao.IStudentDao"/>        
</mappers>

該方式的使用,需要滿足以下幾個要求:

  1. 對映檔名要與dao介面名相同
  2. 對映檔案要與介面在同一包中
  3. 對映檔案中<mapper/>的namespace屬性值為dao介面的全類名

4.<package name="">方式

當對映檔案較多時,也可以使用如下形式。其中package的naem屬性指定對映檔案所存放的包。

<mappers>  
    <package name="com.hcx.dao"/>        
</mappers>

但,這種方式的使用需要滿足以下條件:

  1. dao使用mapper動態代理實現
  2. 對映檔名要與dao幾口名相同
  3. 對映檔案要與介面在同一包中
  4. 對映檔案中<mapper/>的namespace屬性值為dao介面的全類名


作者:JS_HCX
連結:https://www.jianshu.com/p/4191d2de04b7
來源:簡書
著作權歸作者所有。商業轉載請聯絡作者獲得授權,非商業轉載請註明出處。

相關文章