[英]Appending a java.sql.Date in an SQLite JDBC query
我在整个数据库中都使用了PreparedStatements,可以在其中使用setDate(index, data)
,但是使用这样的Date对象会起作用吗?
"SELECT * FROM table WHERE date BETWEEN " + date + " AND " + otherDate
我可以使用任何在线工具对此进行测试吗?
我不认为此功能会起作用:
"SELECT * FROM table WHERE date BETWEEN " + date + " AND " + otherDate
由于您尝试使用两个String
文字连接两个Date
对象。 您将需要使用DateFormatter
将Date
转换为String
。
您应该坚持PreparedStatement
并避免通过连接字符串/值来创建SQL语句。 PreparedStatement
将为您提供一些防止sql injection
保护,而String串联方法将使您面临sql注入的风险。
最好的方法是将日期格式设置为数据库可识别的格式,当直接将其追加到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) + "'";
另外,正如kevin所述,请坚持使用PreparedStatement
,因为这可以为您提供更多保护。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.