MyBatis筆記---開發環境搭建、xml配置以及MybatisUtil工具類建立
* 一. MyBatis開發環境搭建步驟*
1.建立web專案,匯入所需jar包
2.建立實體類,對應資料庫表格
3.建立對映Mapper介面,編寫對應抽象方法
4.配置xml檔案
–建立對應的mapper.xml檔案,獲取sql語句對映
–建立mybatis-config.xml,用於設定資料庫連線資訊、Mybatis執行特性以及設定影響MyBatis行為的一些屬性
5.建立MyBatisUtil工具類,用於獲取SqlSession物件
6.建立Mapper介面實現類,重寫抽象方法
7.編寫測試類,測試程式碼
此處僅記錄了4、5兩步驟的內容
二. mapper.xml檔案配置
對映檔案標籤:
1.mapper—根節點,
無代理:namespace可以任意
有代理:namespace值為對映介面全路徑
2.cache—配置給定名稱空間的快取
3.cache-ref—從其他名稱空間引用快取配置
4.resultMap—用於描述結果集和物件的對應關係,
單表查詢結果可用resultType,多表查詢用resultMap
5.sql—可以重用的sql塊,也可被其他語句引用
6.insert—對映插入語句
7.update—對映修改語句
8.delete—對映刪除語句
9.select—對映查詢語句
示例如下:
<?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="com.mapper.QuestionsMapper">
<!-- 查詢 -->
<select id="介面中方法名" parameterType="方法傳入的引數型別" resultType="方法的返回值型別" >
<!-- sql語句 -->
<!-- 若用動態sql,則引數型別設定為物件型別較方便,判斷條件則可判斷物件屬性 -->
</select>
<insert id="介面中方法名" parameterType="方法傳入的引數型別">
<!-- sql語句 -->
</insert>
....其餘同理
</mapper>
三. mybatis-config.xml檔案配置
配置檔案標籤,順序有要求:
1.properties—描述外部化,可替代的屬性,有兩種方式:
①.外部指定,即配置在典型java屬性配置檔案中(database.properties)
②.直接配置xml檔案
2.settings—設定和修改MyBatis執行中的行為
3.typeAliases—別名配置
4.typeHandlers—型別處理器
5.objectFactory—物件工廠
6.plugins—外掛
7.environments—環境配置,可配置多個environment,default值不能省略
7.1 environment—具體環境變數
7.1.1 transactionManager 事務管理器
7.1.2 dataSource 資料來源
8. mappers 對映器,引入mapper.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>
<!--
database.properties檔案配置資料庫連線資訊, 例如:
driver="com.mysql.jdbc.Driver"
url="jdbc:mysql://localhost:3306/資料庫名稱"
username="資料庫使用者名稱"
password="資料庫密碼"
-->
<properties resource="database.properties"/>
<typeAliases>
<!-- 別名設定,可多個typeAlias標籤-->
<typeAlias type="需設定別名的類全路徑" alias="別名"/>
</typeAliases>
<environments default="development">
<environment id="development">
<transactionManager type="JDBC"/>
<dataSource type="POOLED">
<property name="driver" value="${driver}"/>
<property name="url" value="${url}"/>
<property name="username" value="${username}"/>
<property name="password" value="${password}"/>
</dataSource>
</environment>
</environments>
<mappers>
<!-- 引入對映xml檔案,可多個mapper標籤-->
<mapper resource="對映介面對應xml檔案全路徑"/>
</mappers>
</configuration>
四. MyBatisUtil工具類建立
package com.util;
import java.io.IOException;
import java.io.InputStream;
import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
public class MyBatisUtil {
//宣告SqlSessionFactory物件
private static SqlSessionFactory sqlSessionFactory=null;
static{
try {
//輸入流讀取mybatis-config.xml檔案內容
InputStream is=Resources.getResourceAsStream("mybatis-config.xml");
//SqlSessionFactoryBuilder的build()方法獲取sqlSessionFactory
sqlSessionFactory=new SqlSessionFactoryBuilder().build(is);
} catch (IOException e) {
e.printStackTrace();
}
}
/**
* 自定義方法,用於獲取SqlSession物件
* @param isCommit 判斷是否提交事務
* @return
*/
public static SqlSession getSqlSession(boolean isCommit){
return sqlSessionFactory.openSession(isCommit);
}
}