目錄
一、Resources
二、SqlSessionFactoryBuilder
三、SqlSessionFactory
四、SqlSession
五、最佳實踐
一、Resources
Resources類由MyBatis提供用于擷取來自核心配置檔案的輸入流
相關方法是: InputStream getResourceAsStream(String filepath) ,注意這是一個靜态方
法
二、SqlSessionFactoryBuilder
SqlSessionFactoryBuilder類由MyBatis提供用于擷取SqlSessionFactory的執行個體對象
相關方法是: SqlSessionFactory build(InputStream is) ,該方法通過一個輸入流傳回了
SqlSessionFactory對象
三、SqlSessionFactory
SqlSessionFactory類由MyBatis提供用于擷取SqlSession對象,每個基于MyBatis的應用都是以一
個SqlSessionFactory的執行個體為核心的
相關方法: SqlSession openSession() 和 SqlSession openSession(boolean
autoCommit) ,這兩個方法都用于擷取SqlSession對象,如果使用有參數的可以指定是否自動送出事務,沒有指定參數的預設是不自動送出事務
四、SqlSession
SqlSession類由MyBatis提供用于執行SQL、管理事務、接口代理
常用方法:
方法 | 說明 |
void commit() | 送出事務 |
void rollback() | 復原事務 |
T getMapper(Class<T> aClass) | 擷取指定接口的代理實作類 |
void close() | 釋放資源 |
除了以上常用方法外,SqlSession還有很多有關資料庫增删改查的方法,但是這些方法繁瑣而且不
符合類型安全,是以使用getMapper()方法來擷取一個Mapper接口的代理實作類來執行映射語句
是個比較友善的做法
五、最佳實踐
SqlSessionFactoryBuilder
方法範圍(也就是局部方法變量)。你可以重用SqlSessionFactoryBuilder 來建立多個 SqlSessionFactory 執行個體,但是最好還是不要讓其一直存在以保證所有的 XML 解析資源開放給更重要的事情
SqlSessionFactory
應用範圍。有很多方法可以做到,最簡單的就是使用單例模式或者靜态單例模式
public class SqlSessionUtil {
private static SqlSessionFactory sqlSessionFactory;
static{
try {
InputStream is = Resources.getResourceAsStream("mybatis-
config.xml");
SqlSessionFactoryBuilder sqlSessionFactoryBuilder = new
SqlSessionFactoryBuilder();
sqlSessionFactory = sqlSessionFactoryBuilder.build(is);
} catch (IOException e) {
e.printStackTrace();
}
}
public static SqlSession getSqlSession(){
return sqlSessionFactory.openSession(true);
}
}