所以我试图从我的数据库中获取数据并将其放入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());
}
}
答案 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
代码中找到此方法的示例。