繁体   English   中英

Java中的SQL变量查询

[英]sql variable query in java

我在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????);

我如何定义它?

请帮我 ..

提前致谢

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在您的数据库表中声明为整数。

您可以将String类型用于常量,例如“ 2012-12-31 12:00 am”;如果要操纵Java中的日期/日期差异,则可以使用DateGregorianCalendar

在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'));";

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM