有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

插入大量数据时出现数据库Java SQL异常

我试图将大量数据从一个表插入到另一个表中。这两张桌子位于不同的地区。当我插入数据时,ID(我用来创建连接)能够插入较少行数的数据。如果插入的数据超过500行,就会抛出异常

com。国际商用机器公司db2。jcc。b、 SqlException:db2sql错误:SQLCODE:-551,SQLSTATE:42501,SQLERRMC:DB2GCS;执行包;努利德。SYSLH203

我无法找到为什么在数据更多的情况下显示同一id的授权异常

My Code Snippet : 
 while(RSet.next()){
           stmt=test_conn.prepareStatement("Insert Query");
           for(int i=1;i<=columnCount;i++){
               stmt.setString(i,RSet.getString(i));
           }
           stmt.addBatch();;
       }
       stmt.executeBatch();

提前感谢你的帮助


共 (1) 个答案

  1. # 1 楼答案

    您的代码实际上没有正确地进行批处理,这可能是它崩溃的原因。问题是,您在不必要地一遍又一遍地准备insert查询

    你只需要在循环外准备一次,就像

    test_conn.setAutoCommit(false);
    stmt = test_conn.prepareStatement("INSERT INTO ...");
    
    while(RSet.next()){
       for(int i = 1; i <= columnCount; i++){
           stmt.setString(i, RSet.getString(i));
       }
       stmt.addBatch();
    }
    
    stmt.executeBatch();
    test_conn.commit();