在分析底層原理之前,先看單獨使用mybatis時的執行流程:
以下是我通過debug除錯得到的結果:public
class
mybatistest
//6.釋放資源
sqlsession.close ();
is.close ();
}}
拋開我們使用mybatis時這幾步執行流程來說,在mybatis底層最重要的兩個物件就是configuration
和transaction
。
configuration是mybatis配置物件,它是用來儲存從xml配置檔案中解析得到的所有資料,它裡面有非常重要的三個屬性:
transaction是mybatis的事務管理物件,如果在配置檔案中配置了事務管理,那麼由同乙個sqlsession建立的**物件,在執行crud操作時每次獲取到的connection將會是同乙個,屬性如下:
這兩個物件建立的時機:
configuration
物件在建立sqlsessionfactorybuild
時進行建立,transaction
物件在建立sqlsession
時建立,並且transaction
中包含有configuration
物件,不同的sqlsession
它的transaction
也不相同,但是configuration
物件是同乙個。
MyBatis原理分析
參考部落格 深入理解mybatis原理 一 jdbc的工作流程 載入資料庫的驅動程式 建立資料連線物件 建立statement物件 執行sql語句 處理返回結果集 關閉資料庫連線 二 mybatis和資料庫互動的方式 1 使用傳統的mybatis提供的api 此方式建立乙個sqlsession物件,...
MyBatis原理分析
參考部落格 深入理解mybatis原理 一 jdbc的工作流程 載入資料庫的驅動程式 建立資料連線物件 建立statement物件 執行sql語句 處理返回結果集 關閉資料庫連線 二 mybatis和資料庫互動的方式 1 使用傳統的mybatis提供的api 此方式建立乙個sqlsession物件,...
class底層原理分析
class 類名 會把類構造出來 實際上是 元類例項化產生類 這個物件 類例項化產生物件,一定是 類名 person 類是由type例項化產生,傳一堆引數 type 呼叫類的 init 方法 type type object or name,bases,dict object or name 類的名...