Mybatis工作原理分析(一)

2021-10-01 19:59:13 字數 1795 閱讀 6198

當我們在使用mybatis時,我們通常會和spring一起使用,就會使用以下配置方式,從而使用mybatis

mybatis框架   在單獨使用mybatis時,   原始碼進行分析

1、mybatis將配置檔案儲存到configuration物件中,作用是將配置檔案載入到記憶體中,加快配置檔案的讀取速度

inputstream inputstream = resources.getresourceasstream("mybatis.xml");

sqlsessionfactory sqlsessionfactory = new sqlsessionfactorybuilder().build(inputstream);

public sqlsessionfactory build(reader reader, string environment, properties properties)  catch (exception e)  finally  catch (ioexception e) 

}}

xmlconfigbuilder的parse方法,返回的是configuration物件

public configuration parse() 

parsed = true;

parseconfiguration(parser.evalnode("/configuration"));

//最後返回的是configuration物件

return configuration;

}

2、將configuration作為屬**給defaultsqlsessionfactory類例項物件

public sqlsessionfactory build(configuration config)
3通過sqlsessionfactory建立sqlsession

通過sqlsessionfactory的opensession方法呼叫

public sqlsession opensession()
private sqlsession opensessionfromdatasource(executortype exectype, transactionisolationlevel level, boolean autocommit)  catch (exception e)  finally 

}

4sqlsession呼叫update方法

public int update(string statement, object parameter)  catch (exception e)  finally 

}

注意到這裡為止,sql語句還沒有提交,僅僅是用statement物件,對sql語句進行定位,並沒有進行執行

5、sqlsession呼叫commit進行提交或者回滾

是通過dirty進行判斷是否需要回滾

public void commit(boolean force)  catch (exception e)  finally 

}

6、最後對sqlsession進行關閉

mybatis工作原理

1.讀取配置檔案 連資料庫的相關資訊 2.有了這些資訊就能建立sqlsessionfactory sqlsessionfactory的生命週期是程式級,程式執行的時候建立起來,程式結束的時候消亡 3.sqlsessionfactory建立sqlsession,目的執行sql語句 sqlsession...

MyBatis工作原理

當mybatis執行開始時,先要通過resource載入核心配置檔案,之後使用xmlconfigbuilder解析配置檔案,將解析結果封裝成configuration物件,然後使用configuration物件構建乙個defaultsqlsessionfactory物件,至此,sqlsession工...

mybatis原理分析 一 JDBC

4.statement特點 使用過mybatis的都清楚底層封裝了jdbc的操作,將繁瑣的jdbc的操作給遮蔽了。所以分析mybatis的原理之前,先來看看jdbc是如何工作的,statement有哪些特點。jdbc是由sun公司提出的一些列規範,只定義了介面規範,具體實現由各個資料庫廠商去實現,它...