import javax.swing.table.*; import java.sql.*; import java.util.Vector; public class ResultSetTableModel extends AbstractTableModel{ public ResultSetTableModel(ResultSet aResultSet,String[] columnNames) { this.columnNames = columnNames; rs = aResultSet; try { rsmd = rs.getMetaData(); }catch(SQLException e) { e.printStackTrace(); } } public String getColumnName(int c) { return columnNames[c]; } public int getColumnCount() { try { return rsmd.getColumnCount(); }catch(SQLException e) { e.printStackTrace(); return 0; } } public int getRowCount() { try { rs.last(); return rs.getRow(); }catch(SQLException e) { e.printStackTrace(); return 0; } } public Object getValueAt(int r, int c) { try { rs.absolute(r + 1); return rs.getObject(c + 1); }catch(SQLException e) { e.printStackTrace(); return null; } } private ResultSet rs = null; private ResultSetMetaData rsmd = null; private String[] columnNames = null; }
不帶參數使用默認值: createStatement()=
1.TYPE_FORWORD_ONLY,只可向前滾動;
2.TYPE_SCROLL_INSENSITIVE,雙向滾動,但不及時更新,就是如果數據庫裏的數據修改過,並不在ResultSet中反應出來。
3.TYPE_SCROLL_SENSITIVE,雙向滾動,並及時跟蹤數據庫的更新,以便更改ResultSet中的數據。
詳看API