BatchExecutor:
批处理执行器
只针对修改操作
批处理操作必须手动刷新executor.doFlushstatements(isRollback: false);
ReuseExecutor:
可重用执行器,避免相同语句执行多次预编译
MyBatis一级缓存命中条件:
1.必须是同一个会话(会话级缓存)
2.方法名必须一样,类名也必须一样(statement ID必须一样)
3.RowBounds行范围必须一样
4.sql语句参数
命中条件:
操作配置
1没有手动清空 -clearCache方法-commit方法-rollback方法(未执行任何一种方法就会命中)
2.update操作 -> 会调用clearCache
加了事务的情况下一级缓存就会命中,因为源码每次查询就会新建一个sqlsession