1. 程式人生 > >mybatis中的factory工廠與Sqlsession

mybatis中的factory工廠與Sqlsession

道路 lse 局部變量 bat 運行 重復 數據庫操作方法 pen 操作方法

1.SqlSession的使用範圍

  SqlSession中封裝了對數據庫的操作,如:查詢、插入、更新、刪除等。通過SqlSessionFactory創建SqlSession,而SqlSessionFactory是通過SqlSessionFactoryBuilder進行創建的。

2. SqlSessionFactoryBuilder

  SqlSessionFactoryBuilder用於創建SqlSessionFacotySqlSessionFacoty一旦創建完成就不需要SqlSessionFactoryBuilder了,因為SqlSession是通過SqlSessionFactory

生產,所以可以將SqlSessionFactoryBuilder當成一個工具類使用,最佳使用範圍是方法範圍即方法體內局部變量。

3. SqlSessionFactory

  SqlSessionFactory是一個接口,接口定義了openSesion的不同重載方法,SqlSessionFacoty的最佳使用範圍是整個應用運行期間,一旦創建後可以重復使用,通常以道路模式管理SqlSessionFacoty。

4. SqlSession

  SqlSession是一個面向用戶的接口,SqlSession中定義了數據庫操作方法。

  每個線程都應該有自己的SqlSession實例。SqlSession的實例是不能共享使用的,它也是線程不安全的。因此最佳的範圍是請求或方法範圍。絕對不能將SqlSession實例的引用放在一個類的靜態字段或實例字段中。

  打開一個SqlSession,使用完畢就要關閉它。通常把這個關閉操作放到finally塊中以確保每次都能執行關閉。如下:

SqlSession session = sqlSessionFactory.openSession();
    try {
          // do work
    } finally {
          session.close();
    }

mybatis中的factory工廠與Sqlsession