mybatisplus postgresql 开启批处理模式BATCH
MyBatis Plus 提供了批处理模式的支持,可以在执行 SQL 语句时开启批处理模式,从而提高性能。下面是在 PostgreSQL 数据库中开启批处理模式的示例代码:
首先,需要在数据库连接 URL 中添加 rewriteBatchedStatements=true 参数,以开启批处理模式。例如:
public static final String URL = "jdbc:postgresql://localhost:5432/mydatabase?rewriteBatchedStatements=true";
然后,在 MyBatis Plus 的配置文件中配置批处理的参数。例如:
<configuration>
<settings>
<setting name="jdbcTypeForNull" value="NULL" />
<setting name="batchExecutorType" value="REUSE" />
<setting name="batchSize" value="100" />
</settings>
</configuration>
其中,batchExecutorType 设置为 REUSE 表示复用批处理器,batchSize 设置为 100 表示每次批处理的数量为 100 条。
最后,在执行 SQL 语句时,使用 executeBatch 方法执行批处理。例如:
List<User> userList = new ArrayList<>();
// 添加要批量插入的数据
userList.add(new User("user1", 18));
userList.add(new User("user2", 20));
userList.add(new User("user3", 22));
SqlSession sqlSession = sqlSessionFactory.openSession(ExecutorType.BATCH);
UserMapper userMapper = sqlSession.getMapper(UserMapper.class);
for (User user : userList) {
userMapper.insert(user);
}
sqlSession.flushStatements();
sqlSession.commit();
sqlSession.close();
在上述代码中,使用 sqlSession.flushStatements() 方法将批处理中的 SQL 语句提交给数据库执行,然后使用 sqlSession.commit() 方法提交事务,最后关闭 sqlSession。
这样就可以在 MyBatis Plus 中开启批处理模式,并且将多条 SQL 语句一次性提交给数据库执行,提高性能
原文地址: https://www.cveoy.top/t/topic/iBag 著作权归作者所有。请勿转载和采集!