MySQL使用「IS NULL」而不是「NULL」,所以我如何綁定變量來實現相同?在JAVA中爲MySQL PreparedStatment綁定NULL?
現在,我試圖與此
selectStmt.setNull(2, java.sql.Types.VARCHAR);
當我印刷 「java.sql.Types.VARCHAR」 表示值= 12?如果是的話,這是如何在預先準備好的情況下設置「IS NULL」的?
更多細節:
即我感興趣的查詢(MySQL的)爲空,如果我有字符串=「」輸入。因此,邏輯是這樣的,
Connection c = SQLCon.connect();
PreparedStatement selectStmt = c.prepareStatement("select * from "
+ TableName
+ " where P = ? AND M = ? AND PR = ? AND DR = ? ");
if (P.trim().equals(""))
{
selectStmt.setNull(1, java.sql.Types.VARCHAR);
} else
{
selectStmt.setString(1, P);
}
if (M.trim().equals(""))
{
selectStmt.setNull(2, java.sql.Types.VARCHAR);
} else
{
selectStmt.setString(2, M);
}
請指點
那的確是你如何設置第二個綁定變量設置爲null,如果它是一個VARCHAR列。你的問題是什麼? – 2012-08-14 22:04:15
@PaulTomblin:它是varchar列,但查詢沒有取得我需要的結果。 – 2012-08-14 22:09:55
不要爲null使用空字符串。對null使用null。他們是兩個完全不同的動物。 – 2012-08-15 11:28:43