拉勾教育MyBatis源碼分析 - SQL執(zhí)行過程之 StatementHandler

價格面議2020-11-27 14:38:22
拉勾教育MyBatis源碼分析 - SQL執(zhí)行過程之 StatementHandler
  • 拉勾教育MyBatis源碼分析 - SQL執(zhí)行過程之 StatementHandler
  • 拉勾教育MyBatis源碼分析 - SQL執(zhí)行過程之 StatementHandler
  • 拉勾教育MyBatis源碼分析 - SQL執(zhí)行過程之 StatementHandler
  • 拉勾教育MyBatis源碼分析 - SQL執(zhí)行過程之 StatementHandler

lagoujiaoyu01

注冊時間:2020-08-27

————認證資質(zhì)————

  • 個人已認證
  • 企業(yè)未認證
  • 微信未認證
  • 手機已認證

線上溝通

與商家溝通核實商家資質(zhì)

線下服務(wù)

核實商家身份所有交流確保留有證據(jù)

服務(wù)售后

有保障期的服務(wù)請與商家確定保障實效

詳情

拉勾教育MyBatis源碼分析 - SQL執(zhí)行過程之 StatementHandler

在前面一系列的文檔中,我已經(jīng)分析了 MyBatis 的基礎(chǔ)支持層以及整個的初始化過程,此時 MyBatis 已經(jīng)處于就緒狀態(tài)了,等待使用者發(fā)號施令了 拉勾IT課小編為大家分解

拉勾教育MyBatis源碼分析 - SQL執(zhí)行過程之 StatementHandler
拉勾教育MyBatis源碼分析 - SQL執(zhí)行過程之 StatementHandler
拉勾教育MyBatis源碼分析 - SQL執(zhí)行過程之 StatementHandler
那么接下來我們來看看它執(zhí)行SQL的整個過程,該過程比較復(fù)雜,涉及到二級緩存,將返回結(jié)果轉(zhuǎn)換成 Java 對象以及延遲加載等等處理過程,這里將一步一步地進行分析:
? 《SQL執(zhí)行過程(一)之Executor》
? 《SQL執(zhí)行過程(二)之StatementHandler》
? 《SQL執(zhí)行過程(三)之ResultSetHandler》
? 《SQL執(zhí)行過程(四)之延遲加載》
MyBatis中SQL執(zhí)行的整體過程如下圖所示:

在 SqlSession 中,會將執(zhí)行 SQL 的過程交由Executor執(zhí)行器去執(zhí)行,過程大致如下:
1. 通過DefaultSqlSessionFactory創(chuàng)建與數(shù)據(jù)庫交互的 SqlSession “會話”,其內(nèi)部會創(chuàng)建一個Executor執(zhí)行器對象
2. 然后Executor執(zhí)行器通過StatementHandler創(chuàng)建對應(yīng)的java.sql.Statement對象,并通過ParameterHandler設(shè)置參數(shù),然后執(zhí)行數(shù)據(jù)庫相關(guān)操作
3. 如果是數(shù)據(jù)庫更新操作,則可能需要通過KeyGenerator先設(shè)置自增鍵,然后返回受影響的行數(shù)

拉勾教育MyBatis源碼分析 - SQL執(zhí)行過程之 StatementHandler

拉勾教育MyBatis源碼分析 - SQL執(zhí)行過程之 StatementHandler

展開更多
排行8提醒您:
1)為了您的資金安全,請選擇見面交易,任何要求預(yù)付定金、匯款等方式均存在風(fēng)險,謹防上當受騙!
2)確認收貨前請仔細核驗產(chǎn)品質(zhì)量,避免出現(xiàn)以次充好的情況。
3)該信息由排行8用戶自行發(fā)布,其真實性及合法性由發(fā)布人負責(zé),排行8僅引用以供用戶參考,詳情請閱讀排行8免責(zé)條款。查看詳情>
免費留言
  • !請輸入留言內(nèi)容

  • 看不清?點擊更換

    !請輸入您的手機號

    !請輸入驗證碼

    !請輸入手機動態(tài)碼

lagoujiaoyu01
×
發(fā)送即代表同意《隱私協(xié)議》允許更多優(yōu)質(zhì)供應(yīng)商為您服務(wù)