如何在JTable中使用2个JDateChooser作为搜索工具?

时间:2017-09-19 13:25:22

标签: java mysql swing jdbc

我在Jtable中显示数据库值时遇到问题。我不知道如何在JDataChooser中使用JTable作为搜索工具。我想要这样的流程,如果JDateChooser1选择08-17-2017JDateChooser2选择09-17-2017 JTable只会显示08-17-2017 - 09-17-2017之间的日期值。日期的格式为(MM-dd-yyyy)。

我有这个方法,作为测试,我把方法放在一个按钮上。我也想知道在哪里可以使用这种方法不能使用按钮。选择日期后自动搜索。

sales是myql中的表名,Date是列名。

private void Dated() {
    try {
        String value1, value2;
        value1 = jDateChooser1.getDate().toString();
        value2 = jDateChooser2.getDate().toString();
        String sql = "select * from sales where Date = '" + value1 + "' and '" + value2 + "'";
        pst = conn.prepareStatement(sql);
        rs = pst.executeQuery();

    } catch (Exception e) {
        JOptionPane.showMessageDialog(null, e);
    }
}

1 个答案:

答案 0 :(得分:1)

您在查询中遗漏了一些信息:

  1. 显示该日期在08-17-2017 - 09-17-2017 之间的值,您必须在查询should be select * from sales where Date between date1 and date1中使用 关键字而不是=
  2. 因为您使用的是prepapred语句,所以不要使用查询和值的连接。
  3. 旁边的Date是MySQL中保留的关键字,而不是你必须把它放在两个``
  4. 之间

    您的代码应如下所示:

    Date value1 = jDateChooser1.getDate();
    Date value2 = jDateChooser2.getDate();
    String sql = "select * from sales where `Date` between ? and ?";
    pst = conn.prepareStatement(sql);
    pst.setDate(1, value1);
    pst.setDate(2, value2);
    rs = pst.executeQuery();