在java中从数据库检索数据到JTable

时间:2016-03-06 10:48:01

标签: java swing jdbc jtable sqldatatypes

我想从数据库中获取一些数据并将其显示在JTable中。但是这段代码不起作用 - 它编译成功但不提供任何输出。可能是什么问题?我是Java的新手,所以请详细解释。

try
{
    DefaultTableModel dtm=new DefaultTableModel();
    dtm.addColumn("RegNo");
    dtm.addColumn("Student Name");
    dtm.addColumn("Group Name");
    dtm.addColumn("College");
    dtm.addColumn("Phone No");
    dtm.addColumn("Events");
    dtm.addColumn("Event Category");
    dtm.addColumn("Amounts");
    String str="select * from robomaze;";
    ResultSet rs=DBConnect.st.executeQuery(str);
    int r=0,c=0;
    while(rs.next())
    {
        Class cTypes[]= {String.class,String.class,String.class,String.class,BigInteger.class,String.class,String.class,Integer.class};
        dtm.addRow(cTypes);
        c=0;
       dtm.setValueAt(rs.getInt(1), r, c);
         c++;
          dtm.setValueAt(rs.getInt(2), r, c);
         c++;
          dtm.setValueAt(rs.getInt(3), r, c);
          c++;
          dtm.setValueAt(rs.getInt(4), r, c);
          c++;
          dtm.setValueAt(rs.getInt(5), r, c);
          c++;
          dtm.setValueAt(rs.getInt(6), r, c);
          c++;
          dtm.setValueAt(rs.getInt(7), r, c);
          c++;
          dtm.setValueAt(rs.getInt(8), r, c);
          r++;
    }
    jtable1.setModel(dtm);
    DBConnect.con.close();

}catch(Exception en)
{
    JOptionPane.showMessageDialog(rootPane, en);
}

1 个答案:

答案 0 :(得分:1)

...鉴于

dtm.addColumn("RegNo");
dtm.addColumn("Student Name");
dtm.addColumn("Group Name");
dtm.addColumn("College");
dtm.addColumn("Phone No");
dtm.addColumn("Events");
dtm.addColumn("Event Category");
dtm.addColumn("Amounts");

和...

Class cTypes[]= {String.class,String.class,String.class,String.class,BigInteger.class,String.class,String.class,Integer.class};

对每个列值使用getInt的可能性不大,相反,您可能需要使用更类似的内容...

while (rs.next()) {
    Object[] rowData = new Object[8];
    rowData[0] = rs.getString(1);
    rowData[1] = rs.getString(2);
    rowData[2] = rs.getString(3);
    rowData[3] = rs.getString(4);
    rowData[4] = rs.getInt(5);
    rowData[5] = rs.getString(6);
    rowData[6] = rs.getString(7);
    rowData[7] = rs.getInt(8);
    dtm.addRow(rowData);
}