生活随笔
收集整理的這篇文章主要介紹了
二、MyBatis常用对象分析 封装工具类
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
1.0 MyBatis 對象分析
(1) Resources 類
Resources 類,顧名思義就是資源,用于讀取資源文件。其有很多方法通過加載并解析資源文件,返回不同類型的 IO 流對象。
(2) SqlSessionFactoryBuilder 類
SqlSessionFactory 的 創 建 , 需 要 使 用 SqlSessionFactoryBuilder 對 象 的 build() 方 法 。 由 于SqlSessionFactoryBuilder 對象在創建完工廠對象后,就完成了其歷史使命,即可被銷毀。所以,一般會將該 SqlSessionFactoryBuilder 對象創建為一個方法內的局部對象,方法結束,對象銷毀。
(3) SqlSessionFactory 接口
SqlSessionFactory 接口對象是一個重量級對象(系統開銷大的對象),是線程安全的,所以一個應用只需要一個該對象即可。創建 SqlSession 需要使用 SqlSessionFactory 接口的的 openSession()方法。
? openSession(true):創建一個有自動提交功能的 SqlSession
? openSession(false):創建一個非自動提交功能的 SqlSession,需手動提交
? openSession():同 openSession(false)
(4) SqlSession 接口
SqlSession 接口對象用于執行持久化操作。一個 SqlSession 對應著一次數據庫會話,一次會話以SqlSession 對象的創建開始,以 SqlSession 對象的關閉結束。
SqlSession 接口定義了操作數據的方法 例如 selectOne() ,selectList() ,insert(),update(), delete(), commit(), rollback()
SqlSession 接口對象是線程不安全的,所以每次數據庫會話結束前,需要馬上調用其 close()方法,將其關閉。再次需要會話,再次創建。 SqlSession 在方法內部創建,使用完畢后關閉。
1.1創建工具類,簡化代碼
(1) 創建 MyBatisUtils 類
在zep文件夾下新建utils文件夾,并在utils文件夾下創建MyBatisUtils 工具類
package com
.zep
.utils
;import org
.apache
.ibatis
.io
.Resources
;
import org
.apache
.ibatis
.session
.SqlSession
;
import org
.apache
.ibatis
.session
.SqlSessionFactory
;
import org
.apache
.ibatis
.session
.SqlSessionFactoryBuilder
;import java
.io
.IOException
;
import java
.io
.InputStream
;public class MybatisUtils {private static SqlSessionFactory factory
= null
;static {String config
= "mybatis.xml"; try {InputStream in
= Resources
.getResourceAsStream(config
);factory
= new SqlSessionFactoryBuilder().build(in
);} catch (IOException e
) {e
.printStackTrace();}}public static SqlSession
getSqlSession() {SqlSession sqlSession
= null
;if (factory
!= null
) {sqlSession
= factory
.openSession(); }return sqlSession
;}
}
(2) 使用 MyBatisUtil 類
通過MybatisUtils.getSqlSession()直接獲取sqlSession對象
SqlSession sqlSession = MybatisUtils.getSqlSession()
package com
.zep
;import com
.zep
.domain
.Student
;
import com
.zep
.utils
.MybatisUtils
;
import org
.apache
.ibatis
.io
.Resources
;
import org
.apache
.ibatis
.session
.SqlSession
;
import org
.apache
.ibatis
.session
.SqlSessionFactory
;
import org
.apache
.ibatis
.session
.SqlSessionFactoryBuilder
;import java
.io
.IOException
;
import java
.io
.InputStream
;
import java
.util
.List
;public class MyApp2 {public static void main(String
[] args
) throws IOException
{SqlSession sqlSession
= MybatisUtils
.getSqlSession();String sqlId
= "com.zep.dao.StudentDao"+ "." +"selectStudents";List
<Student> studentList
= sqlSession
.selectList(sqlId
);for (Student student
: studentList
) {System
.out
.println("查詢到的學生=" + student
);}sqlSession
.close();}
}
運行結果如下:
總結
以上是生活随笔為你收集整理的二、MyBatis常用对象分析 封装工具类的全部內容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。