Jdbc Url 中设置allowMultiQueries=true时,可以允许一次执行多条sql(通过分号分割),如下所示:
String url = "jdbc:mysql://localhost:3306?allowMultiQueries=true"; String sql = "select 'hello';select 'world'"; stmt.execute(sql);
否则就会报错.
当调试源代码想找出 allowMultiQueries=true/false时到底哪里有不同,发现当执行完下面的语句后,
//所属:void java.net.SocketOutputStream.socketWrite(byte[] b, int off, int len) socketWrite0(fd, b, off, len);
会有不同的结果.
若设置为true,mysql query log中能看到如下的SQL输出:
23 Query select 'hello'; 23 Query select 'world'
若设置为false的话,就没有上述sql输出.
奇怪的是这两种情况下参数都一样,结果却不同. 不知何故,可有人知晓?
见博客: http://my.oschina.net/zhuguowei/blog/411853
这个已经回答的很清楚了。总结下,就是multiquery就是个mysql对外提供的连接api里的一个参数。有些语言或客户端实现是写死的,硬编码的,没法改,改了也没效。版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。