如果将getRowCount和getColumnCount改为固定值就能显示表格,为什么rs.last();回报空指针

解决方案 »

  1.   

    应该是这个原因http://blog.csdn.net/draling/article/details/6401116
      

  2.   


    class MyTable extends DefaultTableModel{
    private ResultSet rs;
        private ResultSetMetaData rsmd;
        private int column;
        private int row;
        public MyTable(ResultSet rs) {
            this.rs = rs;   
            try {
             this.rsmd = rs.getMetaData();
             this.column = rsmd.getColumnCount();
             rs.last();
    this.row = rs.getRow();
                System.out.println("col:" + column);
                System.out.println("row:" + row);
            } catch (SQLException ex) {
                ex.printStackTrace();
            }
        }
        public int getRowCount() {
         return row;
        }
        public int getColumnCount() {
         return column;
        }
        public String getColumnName(int columnIndex) {
        
            try {
                return rsmd.getColumnName(columnIndex + 1);
            } catch (Exception ex) {
                ex.printStackTrace();
                return null;
            }
        }
        public Object getValueAt(int rowIndex, int columnIndex) {
            try {
                rs.absolute(rowIndex+1);
                return rs.getObject(columnIndex + 1);
            } catch (Exception ex) {
                ex.printStackTrace();
                return null;
            }
        }
    }不是,我将内部类改成这样就可以,真的搞不懂!