MyBatis 批量插入
MyBatis 插入数据的方法有几种:
-
for 循环,每次都重新连接一次数据库,每次只插入一条数据。
-
在编写 sql 时用 for each 标签,建立一次数据库连接。
-
使用 MyBatis 的 batchInsert 方法。
下面是方法 1 和 2 的对比:
在数据量较少的时候,比如几十条,可以使用方法 2。
在数据量较大且一定要用方法 2 的时候,可以在 Java 应用层面实现分批次插入。一般按经验来说,一次性插 20~50 行数量是比较合适的
此外,在数据量较大的情况下,可以试着使用方法3。但要注意,使用方法 3 时要在 jdbc 连接加参数:rewriteBatchedStatements = true。
总结
根据具体的场景选择批量插入方法。
此外,在批处理的时候需要考虑一下事务的问题。
参考
- https://www.sharkchili.com/pages/8741fd/#%E6%9B%B4%E5%A4%9A
- https://www.bilibili.com/video/BV1r34y1W7EL/?spm_id_from=333.337.search-card.all.click&vd_source=4ff9648053bdeaa78d9709d0feb72bd0
- https://blog.csdn.net/huanghanqian/article/details/83177178