2012-05-02 45 views
-2
Connection conn = null; 
conn = DriverManager.getConnection("jdbc:mysql://localhost/madb?&user=root&password=root"); 
PreparedStatement ps = 
     conn.prepareStatement("SELECT * FROM mytable WHERE url IS NULL"); 

我越來越SELECT * FROM MYTABLE其中URL是NULL語法錯誤異常

com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException:你有 在您的SQL語法錯誤;檢查對應於您 MySQL服務器版本正確的語法在1號線

我怎樣才能做到這一點使用JDBC和MySQL使用附近的「空」的手冊?

+1

它與查詢瀏覽器一起工作 – myro

+1

明顯的事情要仔細檢查:(1)錯誤的數據庫? (2)您顯示的查詢不是失敗的查詢? – NPE

+2

爲什麼你使用'PreparedStatement',沒有變量來替換你正在上市的東西? –

回答

2

我看不出爲什麼這個查詢會失敗,特別是鑑於它在查詢瀏覽器中工作。

這裏有一些可能性,或許可以解釋的行爲:

  1. 的代碼連接到錯誤的數據庫。
  2. 您正在查看錯誤的查詢(即其他一些查詢實際上失敗)。請注意,錯誤消息是如何使用小寫字null,而查詢是否使用大寫字母。這看起來很腥。
  3. 您顯示的Java代碼不是您正在運行的代碼(例如,由於某種部署失敗)。
+0

沒有... – myro

+0

它也可能是錯誤的代碼!由於某種原因未能部署的代碼。 – adarshr

+0

@ada rshr:好點。答案已更新。謝謝! – NPE