选择两个java.sql.Date之间的语句

时间:2014-03-10 19:27:22

标签: java sql date

我的代码是:

    java.sql.Date fromDate= new java.sql.Date(date1);
    java.sql.Date toDate= new java.sql.Date(date2);

    String select = "SELECT * FROM Table WHERE Date between " + fromDate+ " and" + toDate;

我正在使用Derby数据库,我必须运行此查询但返回错误。我能怎么做?感谢。

2 个答案:

答案 0 :(得分:9)

首先,停止像那样构建SQL 。它易受SQL injection attacks转换问题(这可能就是问题)而且很难阅读。

改为使用参数化的SQL:

// TODO: Close the statement, e.g. using a try-with-resources statement
// or a finally block.
PreparedStatement statement =
    conn.prepareStatement("SELECT * FROM Table WHERE Date between ? and ?");
statement.setDate(1, fromDate);
statement.setDate(2, toDate);
ResultSet results = statement.executeQuery();
// Use the results

这可能足以立即解决问题。如果不是,请提供更多详细信息。

答案 1 :(得分:2)

使用PreparedStatement。 JDBC教程包括plenty of examples

虽然我们在讨论这个主题,但这可能是了解SQL injection attacks(强制性xkcd reference)的好时机。