當我們在使用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物件
2、將configuration作為屬**給defaultsqlsessionfactory類例項物件public configuration parse()
parsed = true;
parseconfiguration(parser.evalnode("/configuration"));
//最後返回的是configuration物件
return configuration;
}
3通過sqlsessionfactory建立sqlsessionpublic sqlsessionfactory build(configuration config)
通過sqlsessionfactory的opensession方法呼叫
public sqlsession opensession()
4sqlsession呼叫update方法private sqlsession opensessionfromdatasource(executortype exectype, transactionisolationlevel level, boolean autocommit) catch (exception e) finally}
注意到這裡為止,sql語句還沒有提交,僅僅是用statement物件,對sql語句進行定位,並沒有進行執行public int update(string statement, object parameter) catch (exception e) finally}
5、sqlsession呼叫commit進行提交或者回滾
是通過dirty進行判斷是否需要回滾
6、最後對sqlsession進行關閉public void commit(boolean force) catch (exception e) finally}
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公司提出的一些列規範,只定義了介面規範,具體實現由各個資料庫廠商去實現,它...