我想从数据库中获取一些数据并将其显示在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);
}
答案 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);
}