当选择Jdatechooser(Mysql)时,在Jtable上显示日期之间的结果



这是(日期之间)的查询。但当我选择日期并单击"确定"时,JTable上的所有记录都会消失。帮助我为JTable上日期之间的get记录构建查询和语句。

带记录的Jtable

private void jButton3ActionPerformed(java.awt.event.ActionEvent evt) {                                         
    // TODO add your handling code here
    // java.util.Date val1 = jDateChooser1.getDate();

    // java.util.Date val2 = jDateChooser2.getDate();

    java.sql.Date val1 = new java.sql.Date(jDateChooser1.getDate().getTime());
    java.sql.Date val2 = new java.sql.Date(jDateChooser2.getDate().getTime());
    try {
        String sql = "select * from Umar where Date between ? and ? ";
        pst = conn.prepareStatement(sql);
        pst.setDate(1, val1);
        pst.setDate(2, val2);
        rs = pst.executeQuery();
        jTable1.setModel(DbUtils.resultSetToTableModel(rs));
    } catch (Exception e) {
        JOptionPane.showMessageDialog(null,e);
    }
}                        

再一次,我们对您的数据库一无所知。数据在数据库中的显示方式由您决定。

下面是一个简单的查询,让您开始使用。

String sql = "Select * from Umar";
PreparedStatement ps = connection.prepareStatement();
ResultSet rs = ps.executeQuery( sql );
ResultSetMetaData md = rs.getMetaData();
int columns = md.getColumnCount();
//  Get column names
for (int i = 1; i <= columns; i++)
{
    System.out.println( md.getColumnLabel(i) );
}
//  Get row data
while (rs.next())
{
    for (int i = 1; i <= columns; i++)
    {
        Object data = rs.getObject(I);
        System.out.println(data + " : " + data.getClass());
    }
}
rs.close();
stmt.close();

这与您的JTable完全无关。这只是对数据库的一个查询。所以让这个查询工作起来。确定日期在数据库中的存储方式。是字符串还是日期?

然后接下来您更改查询:

String sql = "Select * from Umar where Date between ? and ? ";
...
ps.setDate/String(1, ...);
ps.setDate/String(2, ...);

然后用硬编码数据进行测试,以确保获得数据。然后,一旦这个步骤开始工作,就可以修复将数据加载到JTable中的程序。

最新更新