mybatis Executor

Executor

when?

  • SqlSessionFactory創建Executor,並將Executor作爲defaultSqlSession的構造參數傳進去

what?

  • sqlsession中利用Executor完成實際的sql操作
  • executor操作包括查詢及更新(CUD)

Executor類圖

這裏寫圖片描述

Executor分類

  • SimpleExecutor: 每個sql都封裝成statement,執行完立刻關閉statement
  • 減少sql封裝statement開銷:
    • ReuseExecutor: 將sql與statement映射關係緩存到map中。立即執行statement
    • BatchExecutor: 將若干statement以有序的方式添加到批處理序列,在doFlushStatements()中執行該序列
      • 批處理僅支持CUD這些update操作

extension: Executor設計模式

  • 模板模式
    • BaseExecutor中描述commit, rollback, close流程。commit, rollback, close具體邏輯由子類BatchExecutor, ReuseExecutor, SimpleExecutor實現
  • 裝飾器模式
    • CachingExecutor是Executor裝飾器。先從緩存中取查詢結果,有則返回,如果沒有,再委託給Executor delegate從數據庫中查詢
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章