Mybatis 實現原理 一

2021-08-18 10:54:27 字數 1806 閱讀 8972

1.引入demo

mybatis-config檔案內容

<?xml version="1.0" encoding="utf-8" ?>

<?xml version="1.0" encoding="utf-8" ?>

select * from city where id = #

入口:

public class client 

}

分析**:

1.載入mybatis-config檔案並獲取乙個sqlsessionfactory,類圖如下:

跟進**:

new sqlsessionfactorybuilder().build(inputstream);
裡面進行了2個操作:

2.1解析mybatis-config.xml的檔案內容

private void parseconfiguration(xnode root)  catch (exception e) 

}

2.2返回defautsqlsessionfactory

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

}}

public sqlsessionfactory build(configuration config)

獲取乙個defautlsession

@override

public sqlsession opensession(executortype exectype, connection connection)

@override

public configuration getconfiguration()

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

}

@override

public t selectone(string statement, object parameter) else if (list.size() > 1) else

}

@override

public listselectlist(string statement, object parameter)

@override

public listselectlist(string statement, object parameter, rowbounds rowbounds) catch (exception e) finally

}

if (validateincompletestatements)

}遺留問題:

mybatis如何解析sql

mybatis實現原理

mybatis是對jdbc的一種底層封裝。原理流程 1.sqlsessionfactorybuilder 每乙個mybatis的應用程式的入口是sqlsessionfactorybuilder。它的作用是通過xml配置檔案建立configuration物件,然後通過build方法建立 sqlsess...

Mybatis工作原理分析(一)

當我們在使用mybatis時,我們通常會和spring一起使用,就會使用以下配置方式,從而使用mybatis mybatis框架 在單獨使用mybatis時,原始碼進行分析 1 mybatis將配置檔案儲存到configuration物件中,作用是將配置檔案載入到記憶體中,加快配置檔案的讀取速度 i...

mybatis原理分析 一 JDBC

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