我有一个数据库表,其中包含许多患者详细信息,例如注册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