DefaultTableModel 클래스를 사용하여 ResultSet 데이터를 JTable에 넣으려고합니다. 솔루션으로 I에 유래에 대한 해결책을 찾았지만 그것을 (여기 정말 관련이없는) 조금 수정 :데이터를 쿼리해도 DefaultTableModel이 비어 있습니다.
public static DefaultTableModel buildTableModel(ResultSet rs) {
try {
ResultSetMetaData metaData = rs.getMetaData();
Vector<String> columnNames = new Vector<String>();
int columnCount = metaData.getColumnCount();
for (int column = 1; column <= columnCount;++column) {
columnNames.add(metaData.getColumnName(column));
}
Vector<Vector<Object>> data = new Vector<Vector<Object>>();
while (rs.next()) {
Vector<Object> vector = new Vector<Object>();
for (int columnIndex = 1; columnIndex <= columnCount;++columnIndex) {
vector.add(rs.getObject(columnIndex));
}
data.add(vector);
}
return new DefaultTableModel(data, columnNames);
} catch(SQLException e) {
e.printStackTrace();
return new DefaultTableModel(new Vector<>(), new Vector<>());
}
}
나는 것을 볼 수 있었다이 코드를 디버깅하는 동안 :
- 의 ResultSet
rs
에 데이터가를 , ColumnNames
는
- 의 RowCount는
- 제로, 인구 내가 문제가이 라인
vector.add(rs.getObject(columnIndex));
생각 3231getObject()
이 이미 데이터를 반환하기 때문에 벡터가 비어있는 것처럼 보입니다.
누군가가이 문제에 대해 도움을 주거나 문제가 어디에 있는지 설명해 줄 수 있습니까? 생성 된 DefaultTableModel을 JTable에 바인드 할 때 비어 있습니다 (데이터가 표시되지 않음).
'DefaultTableModel'에는 기존 메서드가있을 때 행이 없습니까? –
예 행 수는 @ dev-null입니다. – CodeShark
코드가 적당 해 보입니다. 루프가 예상대로 실행되는지 확인하려면 디버그 코드를 추가해야합니다. 행 수가 0이면 ResultSet이 비어 있음을 나타냅니다. – camickr