Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/363.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 如何将表中的多行数据插入数据库?_Java_Database_Rows - Fatal编程技术网

Java 如何将表中的多行数据插入数据库?

Java 如何将表中的多行数据插入数据库?,java,database,rows,Java,Database,Rows,这是我的代码,我希望数据库中有两行数据,但当我继续操作时,数据库表中只有最后一行或第二行数据集: try{ int rows=tblCO2.getRowCount(); for(int row = 0; row<rows; row++) { System.out.println(row); String itemcode = (String)tblCO2.getValueAt(row, 0); String lotno = (String)tblCO2.g

这是我的代码,我希望数据库中有两行数据,但当我继续操作时,数据库表中只有最后一行或第二行数据集:

try{

int rows=tblCO2.getRowCount();

 for(int row = 0; row<rows; row++)
  {
    System.out.println(row);
    String itemcode = (String)tblCO2.getValueAt(row, 0);
    String lotno = (String)tblCO2.getValueAt(row, 1);
    String stackno = (String)tblCO2.getValueAt(row, 2);
    String grade = (String)tblCO2.getValueAt(row, 3);
    String ctns = (String)tblCO2.getValueAt(row, 4);

    try
    {
        Class.forName("org.apache.derby.jdbc.ClientDriver").newInstance();
        conn = DriverManager.getConnection("jdbc:derby://localhost:1527/demo","user","pw");
        conn.setAutoCommit(false);
        String queryco = "Insert into alicreative.pur(itemcode,lotno,stackno,grade,ctns) values (?,?,?,?,?)";
        pst = conn.prepareStatement(queryco);
        pst.setString(1, itemcode);
        pst.setString(2, lotno);
        pst.setString(3, stackno);
        pst.setString(4, grade);
        pst.setString(5, ctns);
        pst.addBatch();
    }
    catch(ClassNotFoundException | InstantiationException | IllegalAccessException | SQLException e)
    {
        JOptionPane.showMessageDialog(this,e.getMessage());
    }


}
pst.executeBatch();
conn.commit();
}
catch(  HeadlessException | SQLException e){
    JOptionPane.showMessageDialog(this,e.getMessage());
}
试试看{
int rows=tblCO2.getRowCount();

对于(int row=0;row您正在为每一行创建一个新的连接对象。为什么


(因此,您的PreparedStatement对象的数量与行的数量一样多。在循环结束后,实际执行多少个PreparedStatement对象,以及执行哪个对象?)

初始化
PreparedStatement
(并创建连接)在循环之前,因为实际上,每次迭代都要创建一个新的循环,并用一个批填充它

最后,您只执行最后一个
PreparedStatement
(它只包含最后一行的批处理)

试试看{
int rows=tblCO2.getRowCount();
Class.forName(“org.apache.derby.jdbc.ClientDriver”).newInstance();
conn=DriverManager.getConnection(“jdbc:derby://localhost:1527/demo“、”用户“、”pw”);
连接设置自动提交(错误);
String queryco=“插入alicreative.pur(项目代码、lotno、stackno、等级、CTN)值(?、、?、?)”;
PreparedStatement pst=conn.prepareStatement(查询);
对于(int row=0;row)
try{

int rows=tblCO2.getRowCount();

Class.forName("org.apache.derby.jdbc.ClientDriver").newInstance();
conn = DriverManager.getConnection("jdbc:derby://localhost:1527/demo","user","pw");
conn.setAutoCommit(false);
String queryco = "Insert into alicreative.pur(itemcode,lotno,stackno,grade,ctns) values (?,?,?,?,?)";
PreparedStatement pst = conn.prepareStatement(queryco);

for(int row = 0; row<rows; row++)
{
    System.out.println(row);
    String itemcode = (String)tblCO2.getValueAt(row, 0);
    String lotno = (String)tblCO2.getValueAt(row, 1);
    String stackno = (String)tblCO2.getValueAt(row, 2);
    String grade = (String)tblCO2.getValueAt(row, 3);
    String ctns = (String)tblCO2.getValueAt(row, 4);

    try
    {

        pst.setString(1, itemcode);
        pst.setString(2, lotno);
        pst.setString(3, stackno);
        pst.setString(4, grade);
        pst.setString(5, ctns);
        pst.addBatch();
    }
    catch(ClassNotFoundException | InstantiationException | IllegalAccessException | SQLException e)
    {
        JOptionPane.showMessageDialog(this,e.getMessage());
    }


}
pst.executeBatch();
conn.commit();
}
catch(  HeadlessException | SQLException e){
    JOptionPane.showMessageDialog(this,e.getMessage());
}