如何从 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();
不要在列循环内执行上述语句。您需要为每一列对数据库执行一次更新。
在所有值都分配给语句之后,您应该只执行一次语句。也就是说,每行一次。
我想从 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();
不要在列循环内执行上述语句。您需要为每一列对数据库执行一次更新。
在所有值都分配给语句之后,您应该只执行一次语句。也就是说,每行一次。