2012-03-15 85 views
1

此查詢在通過phpmyadmin輸入時起作用。SQL查詢在phpmyadmin中可用,但在使用jdbc和java時不起作用

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((SELECT LAST_INSERT_'in line 1「

我正在使用完全相同的查詢。通過在PreparedStatement上調用toString並將其複製並粘貼到phpmyadmin中並執行它,它工作正常。它只是不能通過java。任何想法whats wrong?

回答

4

默認情況下,您不能在一個查詢中執行多個語句通過JDBC將它拆分爲兩個調用將會起作用,如將allowMultiQueries配置屬性更改爲True

JDBC Configuration PropertiesallowMultiQueries:

允許使用的「;」一個語句期間來分隔多個查詢(真/假),默認爲「假」,並且不影響addBatch()和則ExecuteBatch()方法而是依賴於rewriteBatchStatements。

默認值:false

+1

注意多個查詢,MySQL的Connector/J驅動的非標準擴展。 – 2012-03-17 15:43:21

相關問題