zoukankan      html  css  js  c++  java
  • JDBC的URL设置allowMultiQueries的原因

    如下的一个普通JDBC示例:

    String user ="root";
    String password = "root";
    String url = "jdbc:mysql://localhost:3306";
    Connection conn = java.sql.DriverManager.getConnection(url , user, password);
    Statement stmt = conn.createStatement();
    String sql = "select 'hello';select 'world'";
    stmt.execute(sql);

    执行时会报错:

    com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'select 'world'' at line 1at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)

    若一个sql中通过分号分割(或包含)了多个独立sql的话,如:

    select 'hello';select 'world'

    默认就会报上述错误,当若显式设置allowMultiQueries为true的话,就可以正常执行不会报错.如下所示:
    String url = "jdbc:mysql://localhost:3306?allowMultiQueries=true";

    allowMultiQueries
    Allow the use of ';' to delimit multiple queries during one statement (true/false), defaults to 'false', and does not affect the addBatch() and executeBatch() methods, which instead rely on rewriteBatchStatements.
    Default: false
    Since version: 3.1.1





  • 相关阅读:
    group by;having;order by
    oracle官方文档
    oracle正则表达式函数和正则表达式简介
    oracle系统函数
    oracle系统表
    windows搭建ftp服务器
    开机自动挂载
    linux修改设置ip地址
    My First Web Server
    为什么要写博客?
  • 原文地址:https://www.cnblogs.com/jeffen/p/6038261.html
Copyright © 2011-2022 走看看