这是(日期之间)的查询。但当我选择日期并单击"确定"时,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中的程序。