簡單介紹一下SqlSession,及四大對象


一、什么是SqlSession呢?

SqlSession是Mybatis最重要的構建之一,可以簡單的任務Mybatis一系列的配置目的是生成類似JDBC生成的Connection對象的SqlSession,這樣才能和數據庫開啟“溝通的橋梁”,通過SqlSession可以實現增刪改查(當然現在更加推薦是使用Mapper接口的形式),那么它是如何執行實現的呢?

了解SqlSession的運作原理是學習Mybatis插件的必經之路,因為Mybatis的插件會在SqlSession運行過程中“插入”運行,如果沒有很好理解的話,Mybatis插件可能會覆蓋相應的源碼造成嚴重的問題。

1.sqlsession

(1)sqlsession簡單原理介紹

sqlSession提供select、insert、update、delete方法,在舊版本中使用sqlsession接口的這些方法,但是在新版本中Mybatis就會建議直接使用mapper接口的方法。

映射器其實就是一個動態代理對象,進入到MapperMethod的execute方法就能簡單找打sqlsession的刪除,更新、查詢、選擇方法,從底層實現來說:通過動態代理技術,讓接口跑起來,之后采用命令模式,最后還是采用了sqlsession的接口方法(getMapper()方法等到Mapper)執行sql查詢(也就是說Mapper接口方法的底層實現還是采用了Sqlsession的接口方法實現的)。

(2)selsession的四個重要對象

1)Execute:調度執行StatementHandler、ParmmeterHandler、ResultHandler執行相應的SQL語句;

2)StatementHandler:使用數據庫中的Statement(PrepareStatement)執行操作,即底層是封裝好的PrepareStatement;

3)ParammeterHandler:處理SQL參數;

4)ResultHandler:結果集ResultSet封裝處理放回。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM