mybatis的執行原理

2021-10-02 08:43:23 字數 2106 閱讀 8250

mybatis執行開始時,使用resources類將磁碟上面的核心配置檔案載入到記憶體中,得到乙個輸入流

inputstream is = resources.

getresourceasstream

("mybatis.xml"

);

然後,通過輸入流作為引數傳遞給xmlconfigbuilder,建立乙個xmlconfigbuilder物件。xmlconfigbuilder物件呼叫parse方法,得到configuration物件。它儲存了磁碟中核心配置檔案的資訊。然後configuration物件作為引數傳遞給defaultsqlsessionfactory,得到defaultsqlsessionfactory物件。defaultsqlsessionfactory物件就是下面的factory。

// 自己寫的

factory =

newsqlsessionfactorybuilder()

.build

(is)

;

// mybatis內部執行的

public sqlsessionfactory build

(inputstream inputstream, string environment, properties properties)

catch

(exception e)

finally

catch

(ioexception e)}}

public configuration parse()

this

.parsed =

true

;parseconfiguration

(this

.parser.

evalnode

("/configuration"))

;return

this

.configuration;

}public sqlsessionfactory build

(configuration config)

public

defaultsqlsessionfactory

(configuration configuration)

然後,執行factory

.opensession().呼叫defaultsqlsessionfactory物件的opensessionfromdatasource方法,建立environment ,transactionfactory ,executor物件,儲存configuration物件中的資料。 獲得乙個defaultsqlsession物件,就是session。

//自己寫的

sqlsession session = factory.

opensession

(/*事務自動提交引數true*/

);

//mybatis內部執行的方法

private sqlsession opensessionfromdatasource

(executortype exectype, transactionisolationlevel level,

boolean autocommit)

catch

(exception e)

finally

errorcontext.

instance()

.reset()

;return defaultsqlsession;

throw exception;

}

現在已經拿到了session.呼叫sql**,事務沒問題,提交,有問題,不提交即回滾。操作完畢,關閉session資源。

以上就是對mybatis框架執行原理的文字描述。

MyBatis的執行原理

答案就是動態 關於動態 的內容,博主在之前的博文中已經詳細介紹過了,此處不再贅述。本文主要探析一下mybatis在執行資料庫操作時的執行原理。package com maowei learning orm dao import com maowei learning orm user public ...

MyBatis的執行原理

為什麼要使用mybatis?jdbc的弊端 什麼是框架?框架是乙個半成品,已經對基礎的 進行了封裝並提供相應的api,開發者在使用框架是直接呼叫封裝好的api可以省去很多 編寫,從而提高工作效率和開發速度。框架定義 框架是一種經過校驗 具有一定功能的半成品軟體。經過校驗 指框架本身經過測試 並且框架...

mybatis執行原理

1 獲取sqlsessionfactory物件 解析檔案的每乙個資訊儲存在configuration中,返回包含configuration的defaultsqlsessionfactory 2 獲取sqlsession物件 返回乙個defaultsqlsession物件,包含executor和con...