实现通过结果集显示数据库记录的TableModel

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; }

 

 

直接用这个还不行哦。
在具体用之前还要进行一下设置:
stmt = con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_READ_ONLY);
不带参数使用默认值: createStatement()=
createStatement(ResultSet.TYPE_FORWARD_ONLY,ResultSet.CONCUR_READ_ONLY)

 

1.TYPE_FORWORD_ONLY,只可向前滚动;      
       
    2.TYPE_SCROLL_INSENSITIVE,双向滚动,但不及时更新,就是如果数据库里的数据修改过,并不在ResultSet中反应出来。      
       
    3.TYPE_SCROLL_SENSITIVE,双向滚动,并及时跟踪数据库的更新,以便更改ResultSet中的数据。
详看API

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章