Mybatis的原理相關

2022-05-17 16:24:41 字數 1360 閱讀 9427

今天看了一篇有關mybatis非常好的文章,順便寫了一下學習心得。

一。mybatis的框架設計

mybatis框架大致可以分為四個部分:

(1)介面層

(2)資料處理層:mybatis的核心  主要

a.動態sql的建立  ---  乙個語句(乙個/等標籤對對應乙個statement物件)

b.sql語句執行

c.封裝查詢結果集為list

(3)框架支援層:a.事務管理機制  ---  如jdbc原生事務管理的commit(),rollback(),close()   ---  用sqlsession物件執行

b.資料庫連線池管理機制  ---  如標籤中的type='pooled'即為使用資料庫連線池   ---  多個資料庫連線物件(即connection物件),已被占用的狀態為(active),未被占用的為(idle)

c.快取機制  ---  為減小伺服器和資料庫的壓力和提公升效率  --- 如sqlsession(一級快取)、sqlsessionfactory(二級快取)  ----  每乙個statement物件有乙個自己對應的快取

(4)引導層:引導層是配置和啟動mybatis配置資訊的方式。我使用的是mybatis.xml配置方式

二。mybatis的一些核心元件

該圖**於原部落格:

博主主頁:

可通過sqlsession.getconfiguration()獲得configuration物件

executor的作用:(1)根據傳遞的引數,通過生成boundsql物件,完成sql語句的動態解析,以便statementhandler使用

(2)為查詢建立快取,以提高效能。(這裡應該是每次查詢,先看是否有相應快取,沒有快取再去資料庫中執行sql語句查詢

(3)建立jdbc的statement連線物件,傳遞給statementhandler物件,返回list查詢結果

statementhandler物件主要工作:

(1)對於jdbc的preparedstatement物件,會對其佔位符?進行設定。(通過parameterhandler物件)

(2)通過listquery(statement statement, resultsethandler resultsethandler)方法執行statement,並將返回結果resultset封裝成list

Mybatis相關的問題

mybatis 中 與 的區別 是將傳入的值當做字串的形式,比如傳的都是1,這邊sql是 select from t user where id 1 是將傳入的資料直接顯示生成sql語句,這邊sql是 select from t user where id 1 使用 可以很大程度防止sql注入 一般...

MyBatis的執行原理

答案就是動態 關於動態 的內容,博主在之前的博文中已經詳細介紹過了,此處不再贅述。本文主要探析一下mybatis在執行資料庫操作時的執行原理。package com maowei learning orm dao import com maowei learning orm user public ...

Mybatis的框架原理

1 配置檔案 sqlmapconfig.xml 全域性配置檔案 資料來源,事物等執行時資訊 2 呼叫 sqlsessionfactory 作用 生產會話 3 呼叫 sqlsession 作用 作為面向程式設計師的介面,程式設計師可以呼叫sqlsession來進行增刪改查。預設實現 defaultsq...