我们可以从源码看到,MybatisPlus的saveBatch方法其实就是对insert方法进行的循环处理,单条SQL执行的,批量提交,但是性能来说还是不是最优解。
如果我们可以进行简单的测试,通过MybatisPlus的saveBatch方法,xml文件中拼接SQL的方法,JDBC批量处理,以10000条数据为例,这三种方法都可以达到批量操作,但是性能方面,还是xml文件中拼接SQL的方法更加快。
其实在我们可以通过配置,让MybatisPlus的saveBatch方法也是采用SQL拼接方式重写,这就可以达到提效的目的。
url: jdbc:mysql://xx.xxx.xxx.xxx:xxx/xxxx?useUnicode=true&characterEncoding=UTF-8&zeroDateTimeBehavior=convertToNull&allowMultiQueries=true&useSSL=false&rewriteBatchedStatements=true
代码中的最后&rewriteBatchedStatements=true,其实就是我们需要配置的重新SQL,这样可以提高批量执行的效率。