gpt4 book ai didi

java - 通过迭代 1000 行的映射来对每 10 个值运行一次批量更新

转载 作者:行者123 更新时间:2023-12-01 13:40:59 25 4
gpt4 key购买 nike

在我的应用程序中,我从数据库中获取(SELECT)大约 1000 条记录并将其保存在 map 中。
然后我需要进行检查,然后每 100 条记录更新一次(使用批量更新)。
因此将会执行 (10*100=1000) 10 组批量更新。
如果任何一组失败,我们需要重试(重新循环)该组(100)。总记录数可以是任意数量。
我尝试了以下方法。我只是想知道是否有更好的逻辑。

x=1000; //total records
y=100; //set of records that need to be updated
for(i=1 to y) {
try{
batchUpdate();
} catch() {
retry();
}
if(i%y==0) { break;}

}

有人可以帮助我获得更好的逻辑吗?

最佳答案

如果使用java jdbc批量更新:

int x = 1000;//your total records
int y = 100;//set of records that need to be updated
String sql = "update xxx set xx = ?,yy=? ";
Connection dbConnection = null;
PreparedStatement preparedStatement = null;
try{
dbConnection = getDBConnection(); //get your db connetion
preparedStatement = dbConnection.prepareStatement(sql);
dbConnection.setAutoCommit(false);
for(int i = 1;i < x;i++){
preparedStatement.setInt(1, 101);
preparedStatement.setString(2, "zzzz");
preparedStatement.addBatch();
if(i % y == 0){
try{
preparedStatement.executeBatch();// update y records
}catch(Exception e){
x -= 100; //if failed ,roll back x
}
}
}
preparedStatement.executeBatch(); // update rest of the reords
dbConnection.commit();
}catch(Exception e){

}

希望可以帮到你!

关于java - 通过迭代 1000 行的映射来对每 10 个值运行一次批量更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20779704/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com