MyBatis最初的程式解讀---API
API詳解:
* 執行緒安全問題出現的條件
(1) 只有單例物件才可能出現執行緒安全問題
(2) 多執行緒環境,即多個執行緒會共享這個單例物件
(3) 單例物件中具有可修改的成員變數
1.SqlSession介面
SqlSession介面的實現類是:org.apache.ibatis.session.defaults.DefaultSqlSession. 該物件是多例的.
2. SqlSessionFactory介面
SqlSessionFactory介面的實現類是: org.apache.ibatis.session.defaults.DefaultSqlSessionFactory.
這個物件的作用就是為了建立SqlSession物件,而由於SqlSession物件是多例的,每建立一次SqlSession物件,都需要一個
SqlSessionFactory物件去建立.但SqlSessionFactory物件是重量級元件,因為DefaultSqlSessionFactory類中
不存在可能修改的成員變數,所以SqlSessionFactory物件可以定義為單例的,其生命週期與整個應用的相同.
3.SqlSessionFactoryBuilder類
該類物件的作用僅僅就是為了建立SqlSessionFactory物件,由於SqlSessionFactory是單例物件,
SqlSessionFactoryBuilder物件就可以定義為一個區域性變數,SqlSessionFactory建立完畢,就可以銷燬了.