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從數據庫中查詢