[英]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中的日期/日期差异,则可以使用Date或GregorianCalendar 。
在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.