当前位置:文档之家› Java的Jtable、从数据库取数据显示在表格中

Java的Jtable、从数据库取数据显示在表格中

数据库操作代码:
// Load JDBC driver
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
String dbUrl = "jdbc:odbc:driver={Microsoft Access Driver ( *.mdb)};DBQ=access\\test.mdb";
Connection con = DriverManager.getConnection(dbUrl, "","");
Statement state = con.createStatemen(ResultSet.TYPE_SCROLL_SEN SITIVE,
ResultSet.CONCUR_UPDATABLE);
// 执行SQL语句
String sql = "select * from score";
ResultSet rs = state.executeQuery(sql);
displayResultSet(rs);
rs.close();
state.close();
con.close();
将数据显示在表格中:
private void displayResultSet(ResultSet rs) throws SQLEx ception {
boolean moreRecords = rs.next(); // 定位到达第一条记录
if(!moreRecords) {
JOptionPane.showMessageDialog(null, "结果集中无记录", "无记录",
RMATION_MESSA GE);
return;
}
Vector rows = new Vector();
Vector columnHeads = new Vector();
try{
ResultSetMetaData rsmd = rs.getMetaData(); // 获得rs结果集中列属性信息
for(int i = 1; i <= rsmd.getColumnCou nt(); ++i)
columnHeads.addElement(rsmd.getColumn Name(i)); // 获得列名(将列名存放至向量columnHeads)
do{
rows.addElement(getNextRow(rs, rsmd) );
}
while(rs.next()); // 利用循环获得所有记录
jTable = new JTable(rows, columnHeads); // 将获得的行列数据信息作为参数重新构造表格视图
jTable.setSize(new Dimension(383, 81));
JScrollPane scroller = new JScrollPane(jT able);// 创建带有滚动条的面板,并将表格视图加入
Container c = getContentPane(); // 获取溶器
// c.remove(2); //
// 从溶器中移除指定控件(本窗体中有二级面板有两个,第一个存放文本域及按钮,第二个存放表格视图,故移除1)
c.add(scroller, BorderLayout.CENTER); // 将面板重新加入溶器中
c.validate(); // 验证此容器及其所有子组件
} catch(SQLException e) {
e.printStackTrace();
}
}
private Vector getNextRow(ResultSet rs, ResultSetMetaData rsmd)
throws SQLException {
Vector currentRow = new Vector(); // 定义一个向量,用于存放记录
for(int i = 1; i <= rsmd.getColumnCount(); + +i)
currentRow.addElement(rs.getString(i)); // 获取记录
return currentRow; // 返回记录
}
以上代码实现连接access并将取出数据显示在JTable控件上……
选择JTable行:
jTable.getSelectedRow() != -1用于判断是否有选中行
(jTable.getModel().getValueAt(jTable .getSelectedRow(),
0)).toString();用于取出选择行的某单元值(0表示该行的第一列以此类推)
if (jTable.getSelectedRow() != -1) {
String ID =
(jTable.getModel().getValueAt(jTable .getSelectedRow(),
0)).toString();
//这里可以执行数据库操作
}。

相关主题