1. mybatis有三種基本的Executor執(zhí)行器:
1.1 SimpleExecutor 每執(zhí)行一次update或select,就開啟一個Statement對象,用完立刻關(guān)閉Statement對象。
1.2 PauseExecutor 執(zhí)行update或select,以sql做為key查找Statement對象,存在就使用,不存在就創(chuàng)建,用完后,不關(guān)閉Statement對象,而且放置于Map內(nèi),供下一次使用。簡言之,就是重復使用Statement對象。
1.3 BatchExecutor 執(zhí)行update,將所有sql通過addBatch()都添加到批處理中,等待統(tǒng)一執(zhí)行executeBatch(),它緩存了多個Statement對象,每個Statement對象都是addBatch()完畢后,等待逐一執(zhí)行executeBatch()批處理。與JDBC批處理相同。
2. 作用范圍 Executor的這些特點,都嚴格限制在SqlSession生命周期范圍內(nèi)。
3. Mybatis中如何指定使用哪一種Executor執(zhí)行器? 在mybatis的配置文件中,可以指定默認的ExecutorType執(zhí)行器類型,也可以手動給DefaultSqlSessionFactory的創(chuàng)建SqlSession的方法傳遞ExecutorType類型參數(shù)。