执行器接口提供,改查,提交,回滚,关闭等操作,是真正和数据库打交道的类。
最基础的简单执行器,也是默认的执行器,可以通过设置,来改变默认的执行器。
执行器内会缓存预编译通过的 sql,并在接到相同的 sql 和执行请求的时候,从本地缓存中检索出之前已经执行过的内容并执行。这样就可以省略预编译过程的性能损耗。
用于一次性操作更新大量数据的场景。批处理执行器在用户查询场景的时候,和 simpleExecutor 是没有差别的。
这里是二级缓存,调用 query 方法时执行首先查询二级缓存,如果二级没有再查询一级缓存。二级缓存不存在的时候,委托给 Executor delegate 去数据库取,delegate 可以是上面任一的 SimpleExecutor、ReuseExecutor、BatchExecutor。
public class DefaultSqlSession implements SqlSession { private Executor executor; }