【问题标题】:duplicate entries while inserting data from jtable to derby database将数据从 jtable 插入 derby 数据库时出现重复条目
【发布时间】:2015-07-15 05:50:44
【问题描述】:

我编写了将值从 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);
    }

我哪里错了。

【问题讨论】:

    标签: java swing jtable


    【解决方案1】:

    您应该将addBatch() 移到内部循环的外侧。首先您应该为语句设置值。添加所有列调用addBatch()

    for(int col = 0; col < tm.getColumnCount(); col++){
            Object val = tm.getValueAt(row, col);
            pst.setObject(col+1, val);
    
    }
    pst.addBatch();
    

    【讨论】:

    • @Herb21 你还有重复的条目吗??那么你不应该接受答案
    • 我不再得到您的建议有效的重复值。
    猜你喜欢
    • 2014-08-01
    • 2019-11-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-05-26
    • 2011-10-09
    相关资源
    最近更新 更多