1

我在 Java 中有 3 个组合框,它们是;

'departurecities={city1,city2,city3} destinationcities={city1,city2,city3} date={1,2,3,4,5,6...}

我想为日期定义一个变量,因为我不知道什么用户会总线日期,所以我需要一个用于 SQL 查询的变量。

我想这样查询:

sql=select busid from buses where dep='city1'and des='city2' and datebus=(????variable????);

我该如何定义它???

请帮我 ..

提前致谢

4

3 回答 3

1

PreparedStatement

如果您想将变量传递给您的 SQL 语句,我建议您使用PreparedStatement. 请参阅Oracle 教程

您可以用于setInt传递整数、setString传递字符串等。 这里是 API。

这是一个例子:

String result = null;
String query = "select busid from buses where dep='city1'and des='city2' and datebus=?";
try {
    PreparedStatement preps = con.prepareStatement(query);
    preps.setInt(1, Integer.parseInt((String) date.getSelectedItem()));
    preps.execute();
    rs = preps.getResultSet();
    if (rs.next()) {
        result = rs.getString(...);
    }
} catch (SQLException ex) {
    System.out.println(ex.getMessage());
}

我假设datebus在您的数据库表中被声明为整数。

于 2013-01-01T00:42:06.177 回答
0

如果您想在 Java 中处理日期/日期差异,您可以将字符串类型用于常量,例如 '2012-12-31 12:00 am',或者DateGregorianCalendar 。

于 2013-01-01T00:39:35.840 回答
0

在 SQL 中,您可以使用to_date()函数将字符串或字符值转换为 SQL 的内部日期格式:

SQL 示例:

to_date('29-Oct-09', 'DD-Mon-YY')
to_date('10/29/09', 'MM/DD/YY')
to_date('120109', 'MMDDYY')

因此,如果您想从 Java 创建 SQL 命令:

String date = "12/31/2012";
String dep = "city1";
String des = "city2";
String SQL = "INSERT INTO buses VALUES(" + dep + "," + des + ",to_date(" + date + ",'MM/DD/YYYY'));";
于 2013-01-01T01:53:41.890 回答