当前使用版本

3.1.2

使用建议

是否可以把批量插入的方法改成insert into values 的方式, for循环一次次单独insert的方式有效率上的缺陷

Comment From: miemieYaho

看文档

Comment From: greydesolate

当前使用版本

3.1.2

使用建议

是否可以把批量插入的方法改成insert into values 的方式, for循环一次次单独insert的方式有效率上的缺陷

https://mp.baomidou.com/guide/faq.html#%E5%9C%A8-wrapper-%E4%B8%AD%E5%A6%82%E4%BD%95%E4%BD%BF%E7%94%A8-limit-%E9%99%90%E5%88%B6-sql

通用 insertBatch 为什么放在 service 层处理

SQL 长度有限制海量数据量单条 SQL 无法执行,就算可执行也容易引起内存泄露 JDBC 连接超时等 不同数据库对于单条 SQL 批量语法不一样不利于通用 目前的解决方案:循环预处理批量提交,虽然性能比单 SQL 慢但是可以解决以上问题。

Comment From: greydesolate

怕内存泄露连接超时理由

个人感觉还是需要insert values方法,因为提出这个需求的,都是关心性能问题了才提出的. 如果担心内存溢出导出JDBC超时,那是程序员自己需要解决的问题了.到时候开发人员自己可以调整批次数量大小来降低jdbc超时.

提供高性能但有风险的方法,有何不可.用不用,用的好不好在于开发人员的责任了. 毕竟简单一个String无限++也会溢出.

关于不同数据库语法问题

那可以提供不同数据库的 insert values方法,如果mybatisplus不好根据连接数据源判定使用哪种数据库的 insertValuse方法,那就让程序员自己自己根据类名/方法名去自行选择也可以.