mybatis工作原理
MyBatis是作(′?`)原一個(gè)??半自動(dòng)的ORM??(對象關(guān)系映射)框架,它封裝了JDBC操作,作原開(kāi)發(fā)者只需關(guān)注SQL本身,??作原無(wú)需花費精力去手動(dòng)設置參數和獲取結果集,作原下面將詳細解讀MyBatis的作原工作原理,并從互聯(lián)網(wǎng)上獲取最新??信息進(jìn)行排版工整、作原高質(zhì)(zhi)量的(de)作原詳細解(′_ゝ`)答:
(圖片來(lái)源網(wǎng)絡(luò ),侵刪)1、作原MyBatis核心對象
SqlSessionFactory:構造會(huì )話(huà)工廠(chǎng)是ヽ(′▽?zhuān)?ノ作原MyBatis工作的起點(diǎn),通過(guò)mybatisconfig.xml配置文件,作原MyBatis環(huán)境配置信息構建SqlSessionFactorヾ(′ω`)?y,作原它是作原創(chuàng )建SqlSession對象的工廠(chǎng)類(lèi)??。
SqlSession:由SqlSessionFactory創(chuàng )建的作原SqlSession對象包含了執行SQL語(yǔ)句的所有方法,它類(lèi)似于JDBC中的Connection對象。
MappedStatement:MappedStatement是對映射信息的封裝,存儲要映射的SQL語(yǔ)句的id、參數等信息。
(圖片來(lái)源網(wǎng)絡(luò ),侵刪)ResultHandler:用于對返回的結果進(jìn)行處理,最終得到想要的數據格式或類(lèi)型。
2、Mヽ(′ー`)ノyBatis工作流程
讀取配置文件:MyBatis首先讀取全局配置文件mybatisconfig.xml,加載數據庫連接信息。
加載映射文件:解析映射文件中的SQL語(yǔ)句,并將這些配置信息加載到MappedStatement對象中。
構造會(huì )話(huà)工廠(chǎng):通過(guò)環(huán)境配置信息構建SqlSession??Factory,準備創(chuàng )建SqlSession對象。
(圖片來(lái)源??網(wǎng)絡(luò ),侵刪)Executor執行器:Executor接口根據SqlSession傳遞的參數動(dòng)態(tài)生成SQL語(yǔ)句,并維護查詢(xún)緩存。
輸入輸出映射:MyBatis處理輸入(ru)參數映射和輸出結果??映射ヾ(′▽?zhuān)??,過(guò)程類(lèi)似于JDBC的操作。
3、
API接口層:提供外部使用的接口A(yíng)PI,接收調用請求后交由數(shu)據處理層完成具體的數據處理。
數據處理(li)層:負責SQL查找、解析、執行以及結果映射處理等,是實(shí)現一次數據庫操作的主要環(huán)節。
基礎支撐層:包(//ω//)括連接管理、事務(wù)( ?ヮ?)管理、配置加載和緩存處理等基礎功能組件。
4、MyBatis增刪改查流程
獲取SqlSessionFactory:解析配置文件信息保存在Configuration中,并返回包含Configuration的DefaultSqlSessionFactory。
獲取SqlSession:返回??一個(gè)DefaultSqlSessヽ(′?`)ノion對象,包含Executor和Configuration。
獲取Mapper接口代理對象:(╬?益?)使用M??apperProxyFactory創(chuàng )建一個(gè)MapperProxy的代理對象??。
5、MyBatis與J(′▽?zhuān)?DBC的關(guān)系
MyBatis核心對象:SqlSession、Executor、MappedStatement、ResultHand??ler。
理解MyBatis原理,閱讀MyBatis核心源碼,有利于提高職場(chǎng)競爭力,MyBatis的優(yōu)點(diǎn)在于簡(jiǎn)單易??學(xué)、靈活、解除S(?????)QL與程序代碼耦合、提供映射標簽和編寫(xiě)動(dòng)態(tài)SQL的支(zhi)持。





