executebatch()不返回添加的批数

wdebmtf2  于 2021-06-18  发布在  Mysql
关注(0)|答案(1)|浏览(372)

我试图从一个准备好的语句中添加精确到3000次的批,但是什么时候 executebatch() 调用时,返回的受影响行数为2048,对于大于2048的values add batch call语句,会发生这种情况。从哪里算2048是返回,我无法猜测。有人能帮我一下吗。
这是我的代码:

while (resultSet.next()) {
        for (int i = 0,j=0; i < noOfColumns && j < noOfColumns; i++) {
        //Setting values here for preparedStatement using setString()
        }
        pstmt.addBatch(); ==> this is called for more than 3000 times
        try {
            if(++count % batchSize == 0){
             updatedCnt=pstmt.executeBatch();  ==> Here batch size is set to 3000 and executebatch returns 2048
             successRowCnt = successRowCnt + updatedCnt.length;

            }
            if (count ==numberofRowsForCloning) {
                isResultMatch = false;
                break;
            }
        } 

    }
p5fdfcr1

p5fdfcr11#

TEID驱动程序用于批插入的默认限制为2048。
从文件:
maxpreparedinsertbatchsize准备好的插入批的最大大小。2048
尝试配置属性 MaxPreparedInsertBatchSize 你需要的尺寸。
请记住,这通常是有限的处理内存。

相关问题