SQL查询在phpmyadmin中工作,但在使用jdbc和java时不能

时间:2012-03-15 19:10:44

标签: java mysql jdbc

当我通过phpmyadmin输入时,此查询有效。

INSERT INTO conversation (user_id) VALUES (?);
INSERT INTO conversation (conversation_id, user_id)
VALUES ((SELECT LAST_INSERT_ID()), ?)

然而,当我使用jdbc和java发送该查询时,我收到错误 -

您的SQL语法有错误;查看与您的MySQL服务器版本对应的手册,以便在'INSERT INTO会话(conversation_id,user_id)VALUES((第1行的SELECT LAST_INSERT_')附近使用正确的语法

我正在使用完全相同的查询。我通过在PreparedStatement上调用toString并将其复制并粘贴到phpmyadmin并执行它来检查它并且工作正常。它只是无法通过java工作。任何想法都错了吗?

1 个答案:

答案 0 :(得分:4)

默认情况下,您无法通过JDBC在一个查询中执行多个语句。将其拆分为两个调用,将allowMultiQueries配置属性更改为True

  

JDBC Configuration Properties - allowMultiQueries:

     

允许使用';'在一个语句中分隔多个查询(true / false),默认为'false',并且不影响addBatch()和executeBatch()方法,而是依赖rewriteBatchStatements。

     

默认值:false