我有一个数据库表,其中包含许多患者详细信息,例如注册ID,注册日期等。我想对患者执行基于日期的搜索,并将结果放入jTable中。 (例如,如果我输入23-05-2013作为注册日期,则应在jTable中显示5月23日收治的所有患者。我该如何做?

这是我使用的代码:

public void getTableData() {
  try {
     con = getConnection.getCon();
     String sql = "SELECT * FROM patientrecords WHERE Registration Date = ?";
     pst.setString(1, regdate.getText());
     pst = con.prepareStatement(sql);
     rs = pst.executeQuery();
     if (rs.next()) {
        patient_table.setModel(DbUtils.resultSetToTableModel(rs));
     }
  } catch (SQLException e) {
     JOptionPane.showMessageDialog(null, e);
  }
}

最佳答案

1)您应该制作自己的TableModel实现或扩展AbstractTableModel

2)将patientrecords映射到对象世界。实体名称也应为单数。因此,您将拥有一个像PatientRecord这样的java-bean。

3)您将有一个List<PatientRecord> data作为DataHolder。

像填充

while (rs.next()) {
        data.add(new PatientRecord(..));
}


4)在某些情况下,您应该在jtable.setModel(..)中进行设置

上一个问题可能会帮助您simple code to populate jtable from resultset

07-25 23:46