实现通过结果集显示数据库记录的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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值