最近做一个数据库初始化工具的时候发现了这个问题,就是在一个Statement中执行一条SQL语句的时候可以正确执行,如果同时执行多条,就会报SQL语法错误,伤透了脑筋。
经过网上查找,发现有两种解决办法:
1、最简单的办法,在MySQL的连接字符串中设置allowMultiQueries参数置为true。
2、在程序中对SQL语句以分号拆分成多条SQL语句,然后使用Statement的addBatch方法,最后executeBatch就行。
结论:第一种方式最简单。
经过网上查找,发现有两种解决办法:
1、最简单的办法,在MySQL的连接字符串中设置allowMultiQueries参数置为true。
2、在程序中对SQL语句以分号拆分成多条SQL语句,然后使用Statement的addBatch方法,最后executeBatch就行。
结论:第一种方式最简单。
希望对以后遇到此类问题的朋友有所帮助。
- 注意:JDBC的批处理不能加入select语句,否则会抛异常:
- java.sql.BatchUpdateException: Can not issue SELECT via executeUpdate().
- at com.mysql.jdbc.StatementImpl.executeBatch(StatementImpl.java:1007)