MyBatis------1.MyBatis入門

一.MyBatis結構圖

 

 

二.安裝

想要使用 MyBatis 只需將 mybatis-x.x.x.jar 文件置於 classpath 中。

如果使用 Maven 構建項目,則需將下面的 dependency 置於 pom.xml 中:

        <!-- mybatis -->
		<dependency>
			<groupId>org.mybatis</groupId>
			<artifactId>mybatis</artifactId>
			<version>3.2.8</version>
		</dependency>

		<!-- mysql-connector-java -->
		<dependency>
			<groupId>mysql</groupId>
			<artifactId>mysql-connector-java</artifactId>
			<version>5.1.18</version>
		</dependency>

三.從 XML 中構建 SqlSessionFactory

每個基於 MyBatis 的應用都是以一個 SqlSessionFactory 的實例爲中心的。SqlSessionFactory 的實例可以通過 SqlSessionFactoryBuilder 獲得。SqlSessionFactoryBuilder 可以從 XML 配置文件或一個預先定製的 Configuration 的實例構建出 SqlSessionFactory 的實例。

從 XML 文件中構建 SqlSessionFactory 的實例非常簡單,建議使用類路徑下的資源文件進行配置。但是也可以使用任意的 InputStream 實例,包括字符串形式或 URL 形式的文件路徑來配置。MyBatis 包含一個叫 Resources 的工具類,它包含一些靜態方法,可使從 classpath 或其他位置加載資源文件更容易。

		String resource = "mybatis-config.xml";
		InputStream inputStream = Resources.getResourceAsStream(resource);
		SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);

XML 配置文件(mybatis-config.xml)中包含了對 MyBatis 系統的核心設置,包含獲取數據庫連接實例的數據源(DataSource)和決定事務範圍和控制方式的事務管理器(TransactionManager)。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>
  <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/student"/>
        <property name="username" value="root"/>
        <property name="password" value="123456"/>
      </dataSource>
    </environment>
  </environments>
  <mappers>
    <mapper resource="mapper.xml"/>
    <mapper resource="studentmapper.xml"/>
  </mappers>
</configuration>

當然,XML 配置文件中還有很多可以配置的,上面的示例指出的則是最關鍵的部分。要注意 XML 頭部的聲明,需要用來驗證 XML 文檔正確性。environment 元素體中包含了事務管理和連接池的環境配置。mappers 元素是包含一組 mapper 映射器(這些 mapper的 XML 文件包含了 SQL 代碼和映射定義信息)。

四.從 SqlSessionFactory 中獲取 SqlSession

既然有了 SqlSessionFactory ,顧名思義,我們就可以從中獲得 SqlSession 的實例了。SqlSession 完全包含了面向數據庫執行 SQL 命令所需的所有方法。你可以通過 SqlSession 實例來直接執行已映射的 SQL 語句。例如:

SqlSession session = sqlSessionFactory.openSession();

五.探究已映射的 SQL 語句

到這裏你或許很想知道 SqlSession 和 Mapper 到底執行了什麼操作,而 SQL 映射是個相當大的話題,可能會佔去文檔的大部分篇幅。不過爲了讓你能夠了解個大概,這裏會給出幾個如何運行的例子。

 XML 定義,事實上 MyBatis 提供的全部特性可以利用基於 XML 的映射語言來實現,這使得 MyBatis 在過去的數年間得以流行。如果你以前用過 MyBatis,這個概念應該會比較熟悉。不過 XML 映射文件已經有了很多的改進,隨着文檔的進行會愈發清晰。這裏給出一個基於 XML 映射語句的示例,它應該可以滿足上述示例中 SqlSession 的調用。

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
  PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
  "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="mybatis-select">
  <select id="getStudent" resultType="cn.bd.domain.Student">
    select * from student
  </select>
</mapper>

對於這個簡單的例子來說似乎有點小題大做了,但實際上它是非常輕量的。在一個 XML 映射文件中,你想定義多少個映射語句都是可以的,這樣下來,XML 頭部和文件類型聲明佔去的部分就顯得微不足道了。文件的剩餘部分具有很好的自解釋性。在命名空間“cn.bd.domain.Student”中定義了一個名爲“getStudent”的映射語句,這樣它就允許你使用指定的完全限定名“cn.bd.domain.Student.getStudent”來調用映射語句。你可能注意到這和使用完全限定名調用 Java 對象的方法是相似的,之所以這樣做是有原因的。這個命名可以直接映射到在命名空間中同名的 Mapper 類,並在已映射的 select 語句中的名字、參數和返回類型匹配成方法。這樣你就可以向上面那樣很容易地調用這個對應 Mapper 接口的方法。不過讓我們再看一遍下面的例子:

		List<Student> list = session.selectList("mybatis-select.getStudent");
		
		for (Student student : list) {
			System.out.println(student);
		}

六.文件結構圖(Maven)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章