2016-08-20 53 views
0

好了,所以我有以下代碼:關閉MySQL的執行()查詢

  Statement statement = connection.createStatement(); 
      boolean resultSet = statement.execute("INSERT INTO guilds(`ID`, `Prefix`, `Join`, `Leave`, `EnableRoles`, `Role`)" 
       +"select col1, col2, col3, col4, col5, col6" 
       +"from (select '"+id+"' as col1, '//' as col2, 'Welcome, {user}!' as col3, 'Goodbye, {user}!' as col4, 'false' as col5, 'none' as col6) t" 
       +"WHERE NOT EXISTS (SELECT * FROM guilds WHERE ID = '123');"); 

通常情況下,當你這樣做的executeQuery();你有一個resultSet.close();方法。我想知道是否有一個執行()(似乎沒有彈出IDE),如果不是,如果/你如何關閉它像resultSet.close();

謝謝。

回答

0

只需關閉聲明statement.close();

此外,它將很好地將所有內容放在trycatch塊中,並在finally子句中執行關閉。

+0

現在我有另一個問題,我正在使用的查詢工作在SQL(工作臺,無論),但沒有在Java?這是什麼造成的? _com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException:您的SQL語法錯誤;檢查與您的MySQL服務器版本相對應的手冊,選擇'select'215406250656137216'作爲col1,'//'作爲col2,'歡迎!'附近的正確語法。作爲col3,'再見!'在線1_ – Arraying

+0

@Arraying可能是你應該創建另一個問題。我不太熟悉mysql語法。然而,你正在使用2個不同的單引號字符(看看你在插入內部使用什麼,以及你在選擇內部使用什麼)...可能是一個問題。 – Plirkee

+0

我不能創建一個新的問題,因爲我必須等待,是的,這就是我認爲的方式。 – Arraying