1 问题说明:

报错 Could not execute JDBC batch update,这是因为Mysql语句的长度是有限制的,默认的长度为1M,也就是说(包含insert在内)的语句长度最大不能超过1M。
        具体的数值可以根据sql语句来查看:show VARIABLES WHERE Variable_name LIKE 'max_allowed_packet';

mysql选择最大的十个数据 mysql语句最大长度_mysql


2 解决方法

我们可以修改mysql的参数来修改sql语句长度的限制
        --在windows-32和windows-64系统下的mysql你需要修改my.ini这个配置文件。
        --在Linux-32系统下的mysql相应的配置文件是my.cnf,Linux-64系统下则是my.conf。

找到文件后([mysqld]下),默认的参数应该是:
        max_allowed_packet=1M
        net_buffer_length=2K
修改成自己想要的数值即可。

mysql选择最大的十个数据 mysql语句最大长度_配置文件_02

3 小结

一次插入很多的操作效率是很低的,如果是正常业务,这个表加了锁,其他与这个表的操作就会一直等待,影响业务正常运行,所以通常多了会分成多次插入,这样我觉得才应该是正确的操作。