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