mysql:在Java中查找指定时间段内的记录组

时间:2016-01-06 10:59:49

标签: java mysql prepared-statement

我想用Java链接mysql数据库,执行查询返回指定时间段的记录,最后以java的形式表示结果。 如何将输入字符串转换为mysql有效日期并输出结果? 我试过了,但失败了。

Connection con = DBCon.dbcon();
java.util.Date t1= new SimpleDateFormat("yyyyMMdd").parse(jTextField2.getText());
java.util.Date t2= new SimpleDateFormat("yyyyMMdd").parse(jTextField3.getText());

PreparedStatement query = con.prepareStatement(SELECT * FROM transaction WHERE TransactionDate >= ? and TransactionDate <=  '"+t1+"' and id1=?);

ResultSet rs = query.executeQuery();

非常感谢!!!

enter image description here

1 个答案:

答案 0 :(得分:0)

您必须将参数设置为PreparedStatement实例,如下所示:

Connection con = DBCon.dbcon();
java.util.Date t1= new SimpleDateFormat("yyyyMMdd").parse(jTextField2.getText());
java.util.Date t2= new SimpleDateFormat("yyyyMMdd").parse(jTextField3.getText());

PreparedStatement query = con.prepareStatement(SELECT * FROM transaction WHERE TransactionDate >= ? AND TransactionDate <= ? AND id1 = ?);
query.setDate(1,new java.sql.Date(t1.getTime()));
query.setDate(2,new java.sql.Date(t2.getTime()));
query.setLong(3,id);// Assuming Datatype of Id to Long and value in variable id, Change accordingly if not.

ResultSet rs = query.executeQuery();

修改:将setDate的数据类型从java.util.Date更改为java.sql.Date