這使我可以從我的數據庫中獲取數據,將其作爲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 ng圍繞該行的try-catch塊
DefaultTableModel dTableModel = acc.buildTableModel();
但是錯誤依然存在。我在這裏有什麼選擇?我明白我所調用的方法會拋出一個SQLException,但是爲什麼當我捕捉到一個SQLException時,它不想玩球?
編輯: 錯誤:
你確定它仍然存在相同的錯誤嗎?或者錯誤更改爲'dTableModel無法解析爲變量'? – Perception 2013-02-28 20:29:28
它似乎總是相同的 - 我添加了一個錯誤的圖像進一步澄清。我覺得如果我解決了這個問題,我可能會得到另一個錯誤,就像你上面提到的那樣,因爲我有點搖擺這個代碼,不確定它是否會起作用。 – 2013-02-28 20:31:48
那麼,那個特定的代碼目前沒有處理異常。試試這個 - 'DefaultTableModel dTableModel = null;嘗試{dTableModel = acc.buildTableModel(); } catch(SQLException sqle){//處理錯誤}'。 – Perception 2013-02-28 20:34:09