Mybatis都有哪些Executor执行器?
Mybatis都有哪些Executor执行器?
MyBatis提供了三种基本的执行器(Executor)类型:SimpleExecutor、ReuseExecutor和BatchExecutor。
- SimpleExecutor:每次执行更新(update)或查询(select)操作时,都会打开一个新的Statement对象,并在执行完成后立即关闭它。
- ReuseExecutor:执行更新或查询时,会使用SQL语句作为键(key)查找对应的Statement对象。如果存在该Statement对象,则重复使用;否则创建一个新的对象。Statement对象存储在一个Map<String, Statement>中,并在使用完后不会关闭,以便下次复用。
- BatchExecutor:用于批量更新(不支持select语句)。它将所有的SQL语句添加到批处理中(使用addBatch()方法),然后等待一次性执行(使用executeBatch()方法)。BatchExecutor缓存了多个Statement对象,在每个Statement对象上调用addBatch()后,可以一起执行executeBatch()进行批量更新操作。与JDBC的批处理类似。
这些执行器的作用范围严格限定在SqlSession的生命周期内。
要指定在MyBatis中使用哪种执行器类型:
- 可以在MyBatis配置文件中的settings部分设置默认的ExecutorType执行器类型。另外,也可以在创建DefaultSqlSessionFactory的SqlSession时手动传递ExecutorType类型的参数,例如
SqlSession openSession(ExecutorType execType)
。 - 配置默认的执行器类型。可选的类型有SIMPLE(普通执行器)、REUSE(重用预处理语句)和BATCH(批量执行器)。SIMPLE是默认的执行器类型,REUSE执行器会重用语句,而BATCH执行器会重用语句并执行批量更新操作。