1. 程式人生 > 其它 >生命週期和作用域 & mybatis執行流程

生命週期和作用域 & mybatis執行流程

流程

 sqlSessionFactory 例項化後  --> transactional事務管理-->建立executor執行器-->建立SqlSession-->實現增刪改查(失敗則回到事務,成功提交事務)

 

SqlSessionFactoryBuilder(工廠的創造者)

***這個類可以被例項化、使用和丟棄,一旦建立了 SqlSessionFactory,就不再需要它了

***區域性方法變數

SqlSessionFactory(工廠)

*******可以想象成資料庫連線池**********

***一旦被建立就應該在應用的執行期間一直存在,沒有任何理由丟棄它或重新建立另一個例項

***使用單例模式或者靜態單例模式

 

 

SqlSession

**********連線到連線池的一個請求****需要開啟和關閉******************

***每個執行緒都應該有它自己的 SqlSession 例項

***每次收到 HTTP 請求,就可以開啟一個 SqlSession,返回一個響應後,就關閉它

 

 

不同作用域內 同一個靜態sqlSessionFactory通過sqlSessionFactory.openSession()方法創建出不同的sqlsession

一個sqlsession可以多次使用它的getMapper方法,獲取到多個mapper介面例項

每個mapper都要去做一個業務(執行某一句sql)