如何将布尔列添加到 java 中的结果集中,然后将结果添加到 jtable
How to add boolean column into resultset in java then add result to jtable
让我解释一下我想在这里实现的目标
在我的结果集中,它们是包含 4 列的数据,然后我需要手动添加 1 列,它应该包含布尔值 (false)
ResultSet res = DbConnect.tabelDb(sql); // get result set
List expRptColWise = new ArrayList();
for (int i = 1; i <= res.getMetaData().getColumnCount(); i++) {
expRxptColWise.add(false);
}
attendence.tblA.setModel(DbUtils.resultSetToTableModel(res))
我已经尝试在 whosebug.com 中找到此代码
这仍然没有改变我的 j table 它只显示 4 列
我怀疑是否可以使用 DBUtils.resultSetToTableModel
来完成,因为它的实际 TableModel
实现是未知的,相反,您将不得不亲自动手,例如...
try (ResultSet rs = ...) {
DefaultTableModel model = new DefaultTableModel();
ResultSetMetaData rsmd = rs.getMetaData();
for (int col = 0; col < rsmd.getColumnCount(); col++) {
model.addColumn(rsmd.getColumnName(col + 1));
}
model.addColumn("boolean column");
while (rs.next()) {
Vector data = new Vector();
for (int col = 0; col < rsmd.getColumnCount(); col++) {
data.add(rs.getObject(col + 1));
}
data.add(Boolean.FALSE);
model.addRow(data);
}
}
请记住,如果您打开资源,则应将其关闭,有关详细信息,请参阅The try-with-resources Statement
DefaultTableModel model = new DefaultTableModel();
ResultSetMetaData rsmd = rs.getMetaData();
for (int col = 0; col < rsmd.getColumnCount(); col++) {
model.addColumn(rsmd.getColumnName(col + 1));
}
model.addColumn("boolean");
while (rs.next()) {
Vector data = new Vector();
for (int col = 0; col < rsmd.getColumnCount(); col++) {//add another Column
data.add(rs.getObject(col + 1));
}
data.add( Boolean.FALSE);
model.addRow(data);
}
JTable newOne=new JTable(model);
JFrame f=new JFrame();
f.add(new JScrollPane( newOne));
f.pack();
f.setLocationRelativeTo(null);
f.setVisible(true);
让我解释一下我想在这里实现的目标 在我的结果集中,它们是包含 4 列的数据,然后我需要手动添加 1 列,它应该包含布尔值 (false)
ResultSet res = DbConnect.tabelDb(sql); // get result set
List expRptColWise = new ArrayList();
for (int i = 1; i <= res.getMetaData().getColumnCount(); i++) {
expRxptColWise.add(false);
}
attendence.tblA.setModel(DbUtils.resultSetToTableModel(res))
我已经尝试在 whosebug.com 中找到此代码 这仍然没有改变我的 j table 它只显示 4 列
我怀疑是否可以使用 DBUtils.resultSetToTableModel
来完成,因为它的实际 TableModel
实现是未知的,相反,您将不得不亲自动手,例如...
try (ResultSet rs = ...) {
DefaultTableModel model = new DefaultTableModel();
ResultSetMetaData rsmd = rs.getMetaData();
for (int col = 0; col < rsmd.getColumnCount(); col++) {
model.addColumn(rsmd.getColumnName(col + 1));
}
model.addColumn("boolean column");
while (rs.next()) {
Vector data = new Vector();
for (int col = 0; col < rsmd.getColumnCount(); col++) {
data.add(rs.getObject(col + 1));
}
data.add(Boolean.FALSE);
model.addRow(data);
}
}
请记住,如果您打开资源,则应将其关闭,有关详细信息,请参阅The try-with-resources Statement
DefaultTableModel model = new DefaultTableModel();
ResultSetMetaData rsmd = rs.getMetaData();
for (int col = 0; col < rsmd.getColumnCount(); col++) {
model.addColumn(rsmd.getColumnName(col + 1));
}
model.addColumn("boolean");
while (rs.next()) {
Vector data = new Vector();
for (int col = 0; col < rsmd.getColumnCount(); col++) {//add another Column
data.add(rs.getObject(col + 1));
}
data.add( Boolean.FALSE);
model.addRow(data);
}
JTable newOne=new JTable(model);
JFrame f=new JFrame();
f.add(new JScrollPane( newOne));
f.pack();
f.setLocationRelativeTo(null);
f.setVisible(true);