이렇게하면 데이터베이스에서 데이터를 가져 와서 DefaultTableModel로 저장하고 해당 모델을 GUI로 전달하여 데이터베이스 데이터로 jTable을 채 웁니다. 보고되지 않은 예외 SQLException; 잡히거나 던져 져야 함 오류
이
내 계정 클래스 내에서 방법 :public static DefaultTableModel buildTableModel() throws SQLException {
Vector<Vector<Object>> data = new Vector<Vector<Object>>();
Vector columns = new Vector();
PreparedStatement ps = null;
ResultSet rs = null;
try {
String stmt = "SELECT * FROM APP.DATAVAULT";
ps = Main.getPreparedStatement(stmt);
rs = ps.executeQuery();
ResultSetMetaData metaData = rs.getMetaData();
// names of columns
Vector<String> columnNames = new Vector<String>();
int columnCount = metaData.getColumnCount();
for (int column = 1; column <= columnCount; column++) {
columnNames.add(metaData.getColumnName(column));
}
// data of the table
while (rs.next()) {
Vector<Object> vector = new Vector<Object>();
for (int columnIndex = 1; columnIndex <= columnCount; columnIndex++) {
vector.add(rs.getObject(columnIndex));
}
data.add(vector);
}
} finally {
try {
ps.close();
} catch (Exception e) {
}
try {
rs.close();
} catch (Exception e) {
}
}
DefaultTableModel tableModel = new DefaultTableModel(data, columns);
return tableModel;
}
그런 다음 내 GUI 내에서 내가 필드
로 다음과 같은 코드가Account acc = new Account();
DefaultTableModel dTableModel = acc.buildTableModel();
마지막으로, 내 GUI 생성자에서, 내가 설정하고 내 datavault 모델에서 모델 jTable 데이터베이스에서 가져 왔어요
public SPPMainGUI() {
initComponents();
datavaultjTable.setModel(dTableModel);
}
내가 봤어 putti 줄 주위에 try-catch 블록이 있습니다.
DefaultTableModel dTableModel = acc.buildTableModel();
하지만 여전히 오류가 있습니다. 내 옵션은 무엇입니까? 나는 호출되는 내 메서드가 SQLException을 throw하지만, 왜 SQLException을 잡을 때 공을 재생하고 싶지 않은지 이해합니다.
편집 : 오류 :
동일한 오류가 계속 발생합니까? 아니면 'dTableModel을 변수로 해석 할 수 없습니다'라는 오류가 변경 되었습니까? – Perception
항상 동일하게 보입니다 - 더 명확히하기 위해 오류 이미지를 추가했습니다. 나는이 문제를 해결하면 위에 적어 놓은 것과 같은 또 다른 오류가 발생할 수 있다고 생각합니다. 왜냐하면이 코드를 스윙하고 작동하는지 확실하지 않기 때문입니다. –
음, 특정 코드는 현재 예외를 처리하지 않습니다. 이것을 시도하십시오 -'DefaultTableModel dTableModel = null; 시도 {dTableModel = acc.buildTableModel(); } catch (SQLException sqle) {// 핸들 오류}'. – Perception