2013-07-31 40 views
0

我有一个数据库表,其中有许多患者详细信息,如注册ID,注册日期等。我想执行基于日期的患者搜索并将结果导入jTable。 (例如,如果我输入23-05-2013作为注册日期,那么所有5月23日入院的患者都应该显示在jTable中。我该怎么做?如何将选定的行从数据库中获取到jTable中?

这是我用过的代码:

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

我编辑您的文章来解决全部大写的标题。请不要这样做。另外,请放慢速度并花时间写下你的问题。当它整洁可读时,人们会更认真地对待你。欢迎来到堆栈溢出! :) – jmort253

+0

开始看看[如何使用表格](http://docs.oracle.com/javase/tutorial/uiswing/components/table.html) – MadProgrammer

+0

@MadProgrammer现在我认为他的代码可能是作品的xD – nachokk

回答

2

1)你应该让自己的TableModel实施或延长AbstractTableModel

)网友patientrecords反对世界。实体名称也应该是单数。所以你会有一个java-bean,比如PatientRecord

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

填补像

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

4)在某些部分,你应该在你的jtable.setModel(..)

这个前面的问题设置可以帮助你simple code to populate jtable from resultset

相关问题