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

weixin_39820780 2021-01-06 10:00:33
Java的Jtable、从数据库取数据显示在表格中
相关下载链接://download.csdn.net/download/liweiwei0725/6348429?utm_source=bbsseo
...全文
64 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
YOUR_EYE 2021-10-26
  • 打赏
  • 举报
回复

数据库操作代码:



// 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_SENSITIVE,
                                      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 SQLException {
        boolean moreRecords = rs.next(); // 定位到达第一条记录
        if (!moreRecords) {
            JOptionPane.showMessageDialog(null"结果集中无记录""无记录",
                    JOptionPane.INFORMATION_MESSAGE);
            return;
        }

        Vector rows = new Vector();
        Vector columnHeads = new Vector();
        try {
            ResultSetMetaData rsmd = rs.getMetaData(); // 获得rs结果集中列属性信息
            for (int i = 1; i <= rsmd.getColumnCount(); ++i)
                columnHeads.addElement(rsmd.getColumnName(i)); // 获得列名(将列名存放至向量columnHeads)

            do {
                rows.addElement(getNextRow(rs, rsmd));
            } 
            while (rs.next()); // 利用循环获得所有记录
            jTable = new JTable(rows, columnHeads); // 将获得的行列数据信息作为参数重新构造表格视图
            jTable.setSize(new Dimension(38381));
            JScrollPane scroller = new JScrollPane(jTable);// 创建带有滚动条的面板,并将表格视图加入
            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();
      //这里可以执行数据库操作
}

13,654

社区成员

发帖
与我相关
我的任务
社区描述
CSDN 下载资源悬赏专区
其他 技术论坛(原bbs)
社区管理员
  • 下载资源悬赏专区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧