1. 程式人生 > >MyBatis 中使用 XML 方式構建 SqlSessionFactory

MyBatis 中使用 XML 方式構建 SqlSessionFactory

首先,在 MyBatis 中的 XML 分為兩類,一類是基礎配置檔案,通常只有一個,主要是配置一些最基本的上下文引數和執行環境;另一類是對映檔案,它可以配置對映關係、SQL、引數等資訊。先看一份簡易的基礎配置檔案,我們把它命名為 mybatis-config.xml,放在工程類路徑下,其內容程式碼如下:

MyBatis 的基礎配置檔案

<?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>
    <typeAliases>
    <!-- 別名-->
        <typeAlias alias="role" type="com.learn.ssm.chapter1.pojo.Role"/>
    </typeAliases>
    <!--資料庫環境-->
    <environments default="development">
        <environment id="development">
            <transactionManager type="JDBC"/>
            <dataSource type="POOLED">
                <property name="driver" value="com.mysql.jdbc.Driver"/>
                <property name="url" value="jdbc:mysql://localhost:3306/ssm"/>
                <property name="username" value="root"/>
                <property name="password" value="123456"/>
            </dataSource>
        </environment>
    </enviroments>
    <!--對映檔案-->
    <mappers>
        <mapper resource="com/learn/ssm/chapter1/mapper/RoleMapper.xml"/>
    </mappers>
</configuration>

描述一下 MyBatis 的基礎配置檔案:

  • <typeAlias> 元素定義了一個 role,它代表著 com.learn.ssm.chapter1.pojo.Role 這個類。這樣定義後,這裡 MyBatis 上下文中就可以使用別名去代替全限定名了。
  • <environment> 元素的定義,這裡描述的是資料庫。它裡面的<transactionManager> 元素是配置事務管理器,這裡採用的是 MyBatis 的 JDBC 管理器方式。然後採用 <dataSource> 元素配置資料庫,其中屬性 type="POOLED" 代表採用 MyBatis 內部提供的連線池方式,最後定義一些關於 JDBC 的屬性資訊。
  • <mapper> 元素代表引入的那些對映器。

有了基礎配置檔案,就可以用一段很簡單的程式碼來生成 SqlSessionFactory 了,程式碼如下所示:

通過 XML 構建 SqlSessionFactory 

SqlSessionFactory sqlSessionFactory = null;
String resource = "mybatis-config.xml";
InputStream inputStream;
try{
    inputStream = Resource.getResourceAsStream(resource);
    sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
}catch (IOException e){
    e.printStackTrace();
}

首先讀取 mybatis-config.xml,然後通過 SqlSessionFactoryBuilder 的 build 方法去建立SqlSessionFactory 。整個過程叫簡單,裡面步驟較繁瑣,只是 MyBatis 採用 Builder 模式為發開發者隱藏了這些細節,這樣一個 SqlSessionFactory 就被創建出來了。

採用 XML 建立的方式,資訊在配置檔案中,有利於我們日後的修改和維護,避免了重新編譯程式碼。