我在Swing.Now中使用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。 请帮我解决这个问题。
答案 0 :(得分:1)
每次覆盖数据时,因为您只添加了一次该行,这是当前在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);
}