生命週期和作用域 & mybatis執行流程
阿新 • • 發佈:2022-04-17
流程
sqlSessionFactory 例項化後 --> transactional事務管理-->建立executor執行器-->建立SqlSession-->實現增刪改查(失敗則回到事務,成功提交事務)
SqlSessionFactoryBuilder(工廠的創造者)
***這個類可以被例項化、使用和丟棄,一旦建立了 SqlSessionFactory,就不再需要它了
***區域性方法變數
SqlSessionFactory(工廠)
*******可以想象成資料庫連線池**********
***一旦被建立就應該在應用的執行期間一直存在,沒有任何理由丟棄它或重新建立另一個例項
***使用單例模式或者靜態單例模式
SqlSession
**********連線到連線池的一個請求****需要開啟和關閉******************
***每個執行緒都應該有它自己的 SqlSession 例項
***每次收到 HTTP 請求,就可以開啟一個 SqlSession,返回一個響應後,就關閉它
不同作用域內 同一個靜態sqlSessionFactory通過sqlSessionFactory.openSession()方法創建出不同的sqlsession
一個sqlsession可以多次使用它的getMapper方法,獲取到多個mapper介面例項
每個mapper都要去做一個業務(執行某一句sql)