1.场景分析
当mysql单条insert语句,插入多条数据记录,且以分号隔开;对于不同的mysql版本,有的可以执行成功,有的却直接报错com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException,这个是怎么导致的?可能有如下几个原因:
1.sql 语句中运用了mysql的关键字;
2.sql本身有问题,可以在navicat或workbench中验证下;
3.在高版本的mysql中,单条insert插入多条记录的情况,以多个insert分割开也有出现这个情况
2.实现方案
2.1 最常见的操作手段叠加inset
insert into user(name, age) values(xx,xxx);
insert into user(name, age) values(xx,xxx);
insert into user(name, age) values(xx,xxx);
insert into user(name, age) values(xx,xxx);
insert into user(name, age) values(xx,xxx);
但是对于这种写法,在高版本的mysql中就会出现com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException的报错,其实sql都是正常的
2.2 优化写法
insert into user(name, age) values(xx,xxx),(xx,xxx),(xx,xxx),(xx,xxx),(xx,xxx);
这样比多条insert语句效率和性能高,在处理多条插入比使用多条insert语句速度快,同时也不会出现上述报错。