1. 程式人生 > >MyBatis筆記---開發環境搭建、xml配置以及MybatisUtil工具類建立

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);
    }
}