将数据从 jtable 插入到 derby 数据库时重复条目
duplicate entries while inserting data from jtable to derby database
我编写代码将值从 jtable 插入到 derby 数据库。该代码确实以一种有趣的方式插入了值。因为我有 7 列,代码插入一个条目 7 次,第一行插入缺少一个值,第二行插入缺少 2 个值,依此类推...这是下面的代码。
try {
Class.forName("org.apache.derby.jdbc.EmbeddedDriver");
Connection con = DriverManager.getConnection("jdbc:derby:MTD","herbert","elsie1*#");
pst = con.prepareStatement("Insert into APP.ASSESSOR" +
"(EMPLOYEEID, NAME, SURNAME,ASSESSORNUMBER," +
"UNITSTANDARDNUMBER, DESCRIPTION, CREDITS, NQFLEVEL)"+
"values(?, ?, ?, ?, ?, ?, ?, ?)");
TableModel tm = jTable1.getModel();
for(int row = 0; row < tm.getRowCount(); row++){
for(int col = 0; col < tm.getColumnCount(); col++){
Object val = tm.getValueAt(row, col);
pst.setObject(col+1, val);
pst.addBatch();
}
}
pst.executeBatch();
JOptionPane.showMessageDialog(null, "Record successfully saved..!");
}
catch (Exception e){
JOptionPane.showMessageDialog(null, e);
}
我哪里错了。
您应该将 addBatch()
移动到内部 loop.first 的外侧 您应该将值设置为语句。添加所有列调用 addBatch()
for(int col = 0; col < tm.getColumnCount(); col++){
Object val = tm.getValueAt(row, col);
pst.setObject(col+1, val);
}
pst.addBatch();
我编写代码将值从 jtable 插入到 derby 数据库。该代码确实以一种有趣的方式插入了值。因为我有 7 列,代码插入一个条目 7 次,第一行插入缺少一个值,第二行插入缺少 2 个值,依此类推...这是下面的代码。
try {
Class.forName("org.apache.derby.jdbc.EmbeddedDriver");
Connection con = DriverManager.getConnection("jdbc:derby:MTD","herbert","elsie1*#");
pst = con.prepareStatement("Insert into APP.ASSESSOR" +
"(EMPLOYEEID, NAME, SURNAME,ASSESSORNUMBER," +
"UNITSTANDARDNUMBER, DESCRIPTION, CREDITS, NQFLEVEL)"+
"values(?, ?, ?, ?, ?, ?, ?, ?)");
TableModel tm = jTable1.getModel();
for(int row = 0; row < tm.getRowCount(); row++){
for(int col = 0; col < tm.getColumnCount(); col++){
Object val = tm.getValueAt(row, col);
pst.setObject(col+1, val);
pst.addBatch();
}
}
pst.executeBatch();
JOptionPane.showMessageDialog(null, "Record successfully saved..!");
}
catch (Exception e){
JOptionPane.showMessageDialog(null, e);
}
我哪里错了。
您应该将 addBatch()
移动到内部 loop.first 的外侧 您应该将值设置为语句。添加所有列调用 addBatch()
for(int col = 0; col < tm.getColumnCount(); col++){
Object val = tm.getValueAt(row, col);
pst.setObject(col+1, val);
}
pst.addBatch();