如何在jTable中显示数据库内容?

时间:2015-09-27 04:01:26

标签: java swing jdbc jtable

所以我试图从我的数据库中获取数据并将其放入jTable中。它正常工作,因为它显示了第一组结果,但它只是不断重复相同的记录。任何人都知道它有什么问题吗?提前谢谢!

void Flight(){
try{

    int x = 0;
    while (rs.next()){
    jTable1.setValueAt(flightID, x, 0);
    jTable1.setValueAt(departdate, x, 1);
    jTable1.setValueAt(departtime, x, 2);
    jTable1.setValueAt(destination, x, 3);
    jTable1.setValueAt(arrivdate, x, 4);
    jTable1.setValueAt(arrivtime, x, 5);

    x++;
    rs.next();
    }
}
catch(SQLException err) {
    JOptionPane.showMessageDialog(AdminWindow.this, err.getMessage());
}
}

1 个答案:

答案 0 :(得分:1)

好吧,你永远不会改变变量" flightID"," departdate"等等的值。调用rs.next()不会更新值。

因此,在循环内部,您需要从ResultSet中获取值。有些想法:

//jTable1.setValueAt(flightID, x, 0);
jTable1.setValueAt(rs.getObject(1), x, 0);

您还调用rs.next()两次,以便跳过数据行。

但是,使用setValueAt(...)方法更新TableModel并不是一个好主意,因为您事先并不知道有多少行,所以您不知道有多大行创建表。相反,最好创建一行数据,然后向TableModel添加一行数据。这样模型就是动态的。

可以在Table From Database中找到的Table From Database Example代码中找到此方法的示例。