Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/317.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/60.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何从JTable获取值并添加到数据库。Jtable和db列是不同的_Java_Mysql_Jtable_Database Connection - Fatal编程技术网

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

Java 如何从JTable获取值并添加到数据库。Jtable和db列是不同的,java,mysql,jtable,database-connection,Java,Mysql,Jtable,Database Connection,我想从Jtable中获取值,然后将它们添加到数据库中。但是我得到错误“没有为参数2指定值”。以及如何替换pstmt.setString(j+1,(String)o)在浮点和int值的情况下 这是代码。屏幕截图如下 PreparedStatement pstmt=(PreparedStatement) con.prepareStatement("INSERT INTO `purchases`(`Pr_ID`,`Model`, `Name`, `Purchase_Price`, `Sale_Pric

我想从Jtable中获取值,然后将它们添加到数据库中。但是我得到错误“没有为参数2指定值”。以及如何替换
pstmt.setString(j+1,(String)o)在浮点和int值的情况下

这是代码。屏幕截图如下

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();
                }
             }
PreparedStatement pstmt=(PreparedStatement)con.PreparedStatement(“插入‘采购’(‘采购标识’、‘型号’、‘名称’、‘采购价格’、‘销售价格’、‘数量’)值(?,,,,,,)”;
对于(int i=0;i
Jtable屏幕截图

数据库图片:

注意:Pur_ID是自动递增的主键。并且Pr_ID是外键

“没有为参数2指定值”

您只将第一列的数据分配给PreparedStatement

pstmt.executeUpdate();
pstmt.clearParameters();
不要在列循环中执行上述语句。您需要对数据库中的每一列执行一次更新


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

如果您能帮忙,我还需要一个解决方案。pstmt固定管柱(j+1,(管柱)o);这只适用于字符串。但我的值也是浮点和整数。它的替代品是什么?