MyBatis核心接口和類
SqlSessionFactoryBuilder:
SqlSessionFactoryBuilder負責構建SqlSessionFactory。它的最大特點是:用過即丟。一旦創建了SqlSessionFactory對象之后,這個類就不需要存在了,因此SqlSessionFactoryBuilder的最佳范圍就是存在於方法體內,也就是局部變量而已。
SqlSessionFactory:
SqlSessionFactory簡單的理解就是創建SqlSession實例的工廠。所有的MyBatis應用都是以SqlSessionFactory實例為中心,SqlSessionFactory的實例可以通過SqlSessionFactoryBuilder對象來獲得。有了SqlSessionFactory實例后,就可以通過SqlSessionFactory實例的openSession()方法來獲取SqlSession實例。
SqlSessionFactory對象一旦創建,就會在整個應用運行過程中始終存在。沒有理由去銷毀或再創建它,並且在應用運行中也不建議多次創建SqlSessionFactory。因此SqlSessionFactory的最佳作用域是Application,即隨着應用的生命周期一同存在。
SqlSession:
SqlSession是用於執行持久化操作的對象,類似於JDBC中的Connection。它提供了面向數據庫執行SQL命令所需的酥油方法,可以通過SqlSession實例直接運行已映射的SQL語句。
SqlSession對應着一次數據庫會話,所以每次訪問數據庫時都需要創建它。創建SqlSession的地方只有一個,就是SqlSessionFactory實例的openSession()方法。(但一個SqlSession會話也可以執行多次SQL)
SqlSession的兩種使用方式:直接通過SqlSession實例來執行已映射的SQL語句、基於mapper接口方式操作數據。