2013-01-22 28 views
0

我一直在使用PreparedStatements遍歷整個數據庫,你可以使用setDate(index, data),但是它會使用這樣的Date對象嗎?在SQLite JDBC查詢中追加java.sql.Date

"SELECT * FROM table WHERE date BETWEEN " + date + " AND " + otherDate

是否有我可以用它來測試這個任何在線工具?因爲你試圖連接具有幾個String面值2個Date對象

"SELECT * FROM table WHERE date BETWEEN " + date + " AND " + otherDate 

回答

1

我不相信這個功能會工作。您需要使用DateFormatterDate轉換爲String

您應該堅持使用PreparedStatement,並避免通過連接字符串/值來創建SQL語句。 PreparedStatement將爲您提供一些針對sql injection的保護,而字符串連接方法將使您面臨SQL注入的風險。

1

最好是格式化你的約會對象在數據庫中識別的格式,當您直接追加到String,日期的toString()會被調用,我懷疑該數據庫將支持這種語法,你會更好做是這樣的:

final SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); 
String s = "SELECT * FROM table WHERE date BETWEEN '" 
    + formatter.format(date) + "' AND " + formatter.format(otherDate) + "'"; 

此外,凱文提到,而堅持PreparedStatement S,因爲這爲您提供更多的保護。