MyBatis 的 ExecutorType使用demo
时间: 2024-09-13 13:15:07 浏览: 12
MyBatis 的 `ExecutorType` 是用来指定 SQL 执行器类型的一个枚举,它定义了 MyBatis 执行 SQL 语句时的操作模式。默认情况下,MyBatis 使用的是 `ExecutorType.SIMPLE` 类型,它适用于大多数情况。但是,当你需要处理大量数据或者需要进行批处理操作时,可以使用 `ExecutorType.REUSE` 或 `ExecutorType.BATCH`。
下面是使用 `ExecutorType.BATCH` 进行批处理操作的一个简单示例:
```java
// 获取 SqlSessionFactory
SqlSessionFactory sqlSessionFactory = // 初始化代码获取 SqlSessionFactory
// 获取 SqlSession
try (SqlSession session = sqlSessionFactory.openSession(ExecutorType.BATCH)) {
// 获取 Mapper
SomeMapper mapper = session.getMapper(SomeMapper.class);
// 创建一个 List 集合,用于存储参数
List<SomeEntity> entityList = new ArrayList<>();
for (int i = 0; i < 100; i++) {
// 创建实体对象并添加到集合中
SomeEntity entity = new SomeEntity();
// 设置实体属性
entity.setProperty1("value1");
entity.setProperty2("value2");
// ... 其他属性设置
entityList.add(entity);
}
// 执行批量插入操作
mapper.insertBatch(entityList);
// 提交事务
session.commit();
}
```
在上面的示例中,首先通过 `SqlSessionFactory.openSession(ExecutorType.BATCH)` 创建了一个 `SqlSession` 对象,并指定了执行器类型为 `ExecutorType.BATCH`。这样做是为了让 MyBatis 使用批处理方式执行 SQL 语句,从而提高大量数据插入时的性能。随后,通过获取的 `Mapper` 对象执行了一个 `insertBatch` 方法,该方法假设已经在 Mapper XML 文件中定义好了。最后,不要忘记提交事务,以确保所有的更改都被保存到数据库中。