Java JBDC批插入未正确循环

Java JBDC批插入未正确循环,java,sql,jdbc,insert,batch-processing,Java,Sql,Jdbc,Insert,Batch Processing,我目前正在尝试将字符串数组中的值插入数据库中的三列 e、 g.在第1列中列出1,以此类推。但是在循环中使用批插入时出现问题。这是我当前的代码,从中我可以收集到唯一的方法是在每个字符串数组上循环插入值,除非有更好的方法 PreparedStatement stmt = conn.prepareStatement("INSERT INTO Scores (Home, Score, Away) VALUES (?, ?, ?)"); String[] List1str = new Strin

我目前正在尝试将字符串数组中的值插入数据库中的三列 e、 g.在第1列中列出1,以此类推。但是在循环中使用批插入时出现问题。这是我当前的代码,从中我可以收集到唯一的方法是在每个字符串数组上循环插入值,除非有更好的方法

PreparedStatement stmt = conn.prepareStatement("INSERT INTO Scores (Home, Score, Away) VALUES (?, ?, ?)");

    String[] List1str = new String[List1.size()];
    List1str = List1.toArray(List1str);   
    String[] List2str = new String[List2.size()];
    List2str = List2.toArray(List2str);
    String[] List3str = new String[List3.size()];
    List3str = List3.toArray(List3str);

    for (String s1 : List1str) {
        stmt.setString(1, s1);
        for (String s2 : List2str) {
            stmt.setString(2, s2);
            for (String s3 : List3str) {
                stmt.setString(3, s3);
                    stmt.addBatch();
            }
        }
    }
    stmt.executeBatch();

您应该在执行addBatch()之前绑定所有字符串。 当前您的addBatch()位于最后一个嵌套循环中

如果我们假设所有列表的大小相同,那么您的代码应该如下所示:

for (int i=0; i<List1.size(); i++) {
    stmt.setString(1, List1[i]);
    stmt.setString(2, List2[i]);
    stmt.setString(3, List3[i]);
    stmt.addBatch();
}
stmt.executeBatch();

for(int i=0;iIt)如果您的问题能告诉我们列表包含什么、您的预期结果是什么以及当前代码在做什么,那会有帮助。这三个列表的大小不同吗?这三个列表的大小都相同