当前位置: 代码迷 >> J2SE >> 怎样把连接查询的结果集放到JTable中,该如何解决
  详细解决方案

怎样把连接查询的结果集放到JTable中,该如何解决

热度:352   发布时间:2016-04-24 18:05:35.0
怎样把连接查询的结果集放到JTable中
比如一个employ表,一个dept表。我要把两个表的部分字段组合在一起,然后放到Jtable中。怎么解决?
一个employimpl 一个deptimpl。 但是两个返回的分别是employ 和 dept 啊!

------解决方案--------------------
Java code
/** * @author Administrator  *  * connection:数据库的连接  * sql:要查询的sql语句 * name:希望在表格每列顶行显示的文字 *  */public class DisplayDialog extends JDialog {//假设表格在JDialog上    Statement stmt = null;    DisplayDialog(Connection connection, String sql,        Object[] name) {    this.setBounds(200, 200, 400, 500);    this.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);    this.setVisible(true);    try {        stmt = connection.createStatement(            ResultSet.TYPE_SCROLL_INSENSITIVE,// 对滚动不敏感,结果集可滚来滚去            ResultSet.CONCUR_READ_ONLY);// 只能够读取里边的内容,        ResultSet rs = stmt.executeQuery(sql);        rs.last();// 指到定位到最后一行        int row = rs.getRow();// 获得总行数        rs.beforeFirst();// 定位到开始        ResultSetMetaData rsmd1 = rs.getMetaData();// 计算字段个数        int col = rsmd1.getColumnCount(); // 计算字段个数        Object a[][] = new Object[row][col];        JTable table = new JTable(a, name);        for (int index = 0; rs.next(); index++)        for (int j = 0; j < col; j++)            a[index][j] = rs.getString(j + 1);        getContentPane().removeAll();        add(new JScrollPane(table), BorderLayout.CENTER);        validate();        rs.close();    } catch (SQLException e) {        System.out.println("SQL语句无效");        add(new JLabel("SQL语句无效"));        e.printStackTrace();    }    }}
------解决方案--------------------
LS代码给的很详细,不过个人给点建议。自从学了集合之后,数组这东西基本上就放弃使用了。因为数组定长有很多局限性,或者说浪费很多操作。比如说ls 
int row = rs.getRow();// 获得总行数

因为你要定义2维数组,你就必须获得它的长度。
因为集合不定长,只要不断往里加就可以。所以在做解决类似问题时,用集合会远比用数组方便哈。

个人建议~
  相关解决方案