【发布时间】:2015-08-18 13:30:07
【问题描述】:
我正在尝试将查询中的值添加到我动态创建的 jTable 列中。我在下面编写的代码使用单个值填充列。
TableColumn c = new TableColumn();
c.setHeaderValue("Test");
((DefaultTableModel) jTable2.getModel()).addColumn(c);
String sql = "select COUNT(COURSEBOOKED) as count from APP.BOOKCOURSE where COURSEBOOKED =?";
try(Connection con = DriverManager.getConnection("jdbc:derby:MTD","herbert","elsie1*#");
PreparedStatement pst = con.prepareStatement(sql);){
for(int row = 0; row < jTable2.getRowCount(); row++){
DefaultTableModel model = (DefaultTableModel)jTable2.getModel();
String selected = model.getValueAt(row, 1).toString();
pst.setString(1, selected);
try(ResultSet rs = pst.executeQuery();){
for(int col = 0; col<jTable2.getRowCount(); col++){
if(rs.next()){
Sum = rs.getString("count");
jTable2.setValueAt(Sum, col, 12);
System.out.println(Sum);
}
}
}
}
}
catch(SQLException e){
JOptionPane.showMessageDialog(this, e);
}
我需要添加到表格中的输出应该是:
0 0 0 2 0 1 0
但我实际上得到了:
0
这意味着添加到列的值是结果查询的第一个值。但是我从打印到控制台得到的结果是
0 0 0 2 0 1 0
我该如何解决我的这个困境?
【问题讨论】:
-
变量名不应以大写字符开头。你的大多数名字都是正确的,但“总和”不是。保持一致!!!