MyBatis 中使用 XML 方式構建 SqlSessionFactory
阿新 • • 發佈:2018-11-17
首先,在 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 建立的方式,資訊在配置檔案中,有利於我們日後的修改和維護,避免了重新編譯程式碼。