我在 Swing 中使用 Netbeans GUI 设计了一个 Jtable。现在根据我的要求,我必须将数据库表值显示到 jtable 中。
这是我的代码..
Statement statement = (Statement) con.createStatement();
ResultSet resultSet = statement.executeQuery(sql);
ResultSetMetaData metaData = (ResultSetMetaData) resultSet.getMetaData();
DefaultTableModel dtm = new DefaultTableModel();
int columns = metaData.getColumnCount();
Vector Column_Name = new Vector();
Vector data_rows = new Vector();
for (int i = 1; i < columns; i++) {
Column_Name.addElement(metaData.getColumnName(i));
}
dtm.setColumnIdentifiers(Column_Name);
while (resultSet.next()) {
data_rows = new Vector();
for (int j = 1; j < columns; j++) {
data_rows.addElement(resultSet.getString(j));
}
}
dtm.addRow(data_rows);
jTable1.setModel(dtm);
resultSet.close();
当表中有这么多行时,为什么此代码只将数据库的一行显示到 jtable 中。 请帮我解决这个问题。
最佳答案
每次覆盖数据时,因为您只添加了该行一次,当前是在 while 循环之后
因此尝试在循环中移动行数据的添加,例如:
while (resultSet.next()) {
data_rows = new Vector();
for (int j = 1; j < columns; j++) {
data_rows.addElement(resultSet.getString(j));
}
dtm.addRow(data_rows);
}
关于java - Jtable中只显示数据库表的一行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22960787/