如何从 JTable 获取值并添加到数据库。 Jtable 和 db 列不同

How to Fetch Values from JTable and add to database. Jtable and db columns are different

我想从 Jtable 中获取值,然后将它们添加到数据库中。但我收到错误 "No value specified for parameter 2" 。在 float 和 int 值的情况下 pstmt.setString(j+1, (String)o); 的替换是什么。

这是代码。屏幕截图如下

PreparedStatement pstmt=(PreparedStatement) con.prepareStatement("INSERT INTO `purchases`(`Pr_ID`,`Model`, `Name`, `Purchase_Price`, `Sale_Price`, `Quantity`) VALUES (?,?,?,?,?,?)");

            for (int i = 0; i < model.getRowCount(); i++) {
                for (int j = 0; j < model.getColumnCount(); j++) {
                    Object o = model.getValueAt(i, j);
                    System.out.println("object from table is  : " +o);
                    pstmt.setString(j+1, (String)o);
                    pstmt.executeUpdate();
                    pstmt.clearParameters();
                }
             }

Jtable 屏幕截图

数据库图片:

注意:Pur_ID是自增的主键。 Pr_ID 是外键

"No value specified for parameter 2"

您只将第一列的数据赋给了PreparedStatement

pstmt.executeUpdate();
pstmt.clearParameters();

不要在列循环内执行上述语句。您需要为每一列对数据库执行一次更新。

在所有值都分配给语句之后,您应该只执行一次语句。也就是说,每行一次。