检查以下代码。while (rs.next()) { count++; } Object[][] info = new Object[count][6]; String[] title = { "学号", "姓名", "出生日期", "性别", "专业", "宿舍楼" }; count = 0; while (rs.next()) { info[count][0] = rs.getString("sno"); info[count][1] = rs.getString("sname"); info[count][2] = rs.getString("sbirth"); info[count][3] = rs.getString("ssex"); info[count][4] = rs.getString("sclass"); info[count][5] = rs.getString("saddress"); count++; } JTable table = new JTable(info, title); contentPane.add(new JScrollPane(table), BorderLayout.CENTER); validate();
时间: 2024-03-01 08:54:00 浏览: 56
C语言课程设计
这段代码的问题在于第二个 while 循环,因为在第一个 while 循环中已经遍历了 ResultSet 中的所有数据行,所以在第二个 while 循环中 rs.next() 不会再返回任何数据行,导致 info 数组中的数据全部为 null。
为了解决这个问题,可以将第二个 while 循环中的代码合并到第一个 while 循环中,如下所示:
```
while (rs.next()) {
count++;
info[count-1][0] = rs.getString("sno");
info[count-1][1] = rs.getString("sname");
info[count-1][2] = rs.getString("sbirth");
info[count-1][3] = rs.getString("ssex");
info[count-1][4] = rs.getString("sclass");
info[count-1][5] = rs.getString("saddress");
}
```
这样就可以正确地将 ResultSet 中的数据保存到 info 数组中了。
阅读全文