MyBatis知識點

Mybatis的優缺點

優點:

  1. 原生sql
  2. sql語句與代碼解耦合
  3. 簡單易學
  4. 原生的sql語句,sql調優靈活

缺點:

  1. 半自動ORM,不能自動sql語句
  2. sql語句依賴於具體數據庫,數據性移植差

Mybatis緩存機制

一級緩存

  1. 作用域是Session,會對同一個Session中執行語句的結果進行緩存,來提高再次執行的效率
  2. 內部通過HashMap實現
  3. 默認開啓

二級緩存

  1. 作用域是Mapper(namespace),在同一個namespace中查詢sql時,可以從緩存中獲取數據
  2. 二級緩存可以跨SqlSession生效,並且可以自定義存儲源,比如:ehcache等緩存實現
  3. 可配置剔除策略、刷新時間、緩存數量等進行優化

問:請介紹一下Mybatis的緩存機制

Mybatis的具體使用相關

  1. Mybatis是如何預防Sql注入的?利用變量佔位符:#{},進行sql預編譯
  2. Mybatis怎麼獲取自增id?
  3. 動態Sql標籤:如何配置?有哪些?

Mybatis的主要對象及其相應的作用

  1. SqlSessionFactory是用來創建SqlSession的工廠類,對應配置文件中的數據庫配置
  2. SqlSession:對數據庫的操作是在SqlSession中進行的,SqlSession非線程安全,每次調用數據庫後都需要調用close進行關閉
  3. Executor:SqlSession通過內部的Executor來進行增刪改查操作
  4. StatementHandler:用來處理sql語句的預編譯,設置參數
  5. ParameterHandler:用來設置預編譯參數
  6. ResultSetHandler:用來處理結果集
  7. TypeHandler:進行數據庫類型和JavaBean類型的互相映射

Mybatis的插件機制

  1. 插件機制是通過攔截器組成責任鏈對Executor、StatementHandler、ParameterHandler、ResultSetHandler四個作用點進行定製化處理
  2. 基於插件機制實現的常用插件:mybatis-pagehelper

Mybatis的執行流程 這裏

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章