在企业开发中, 对数据库的批量操作, 是一个非常常见的操作, Mybatis提供了批量执行器, 来支持批量操作.
1. Mybatis sql执行器
Mybatis 支持全局修改执行器, 参数名为: defaultExecutorType. 但是笔者并不推荐这种方式,笔者建议在获取sqlSession对象时设置. Mybatis 共有三种执行器:
- SIMPLE: 默认的执行器, 对每条sql进行预编译->设置参数->执行等操作
- BATCH: 批量执行器, 对相同sql进行一次预编译, 然后设置参数, 最后统一执行操作
- REUSE: REUSE 执行器会重用预处理语句(prepared statements
1.1 局部设置
在获取sqlSession时设置, 需要注意的时, 如果选择的是批量执行器时, 需要手工提交事务.
// 获取指定执行器的sqlSession
SqlSession sqlSession = sqlSessionFactory.openSession(ExecutorType.BATCH)
// 获取批量执行器时, 需要手动提交事务
sqlSession.commit();
1.2 全局配置
可在全局配置文件中配置, 但是笔者不推荐这种方式, 了解即可.
<settings>
<setting name="defaultExecutorType" value="BATCH"