java jdatechooser作为mysql查询中的参数
在jdatechooser中的日期将作为我的参数的地方,我可以查询该语句的正确方法是什么
DefaultTableModel model= (DefaultTableModel)DisplayRecieveTB.getModel();
DisplayRecieveTB.revalidate();
model.getDataVector().removeAllElements();
try{
String date = DateChooserRS.getDate().toString();
stmt = conn.createStatement();
stmt.executeQuery("SELECT *FROM supplyrecievable where recievedate = '"+date+"' ");
rs = stmt.getResultSet();
while (rs.next())
{
String r1 = rs.getString("itemname");
String r2 = rs.getString("itemgroup");
String r3 = rs.getString("itemcount");
String r4 = rs.getString("totalcost");
String r5 = rs.getString("itemcode");
model.addRow(new Object[] {r5,r1,r2,r3,r4});
DisplayRecieveTB.revalidate();
}
}
catch(Exception e)
{
JOptionPane.showMessageDialog(null, e.getMessage());
}
# 1 楼答案
PreparedStatement
Date
值转换为String
,结果值很可能是不可比较的(如果数据库列不是日期或时间戳类型,那么就错了)例如
这是假设数据库列类型与
java.sql.Date
值兼容有关详细信息,请参见Using Prepared Statements