try {
stmt = connect.createStatement();
for(int i=0;i<sqls.size();i++){
//count++;
//if(count < 100){
stmt.addBatch((String)sqls.get(i));
}
//else{
stmt.executeBatch();
// count = 0;
/* }
}
if(count > 00){
stmt.executeBatch();
}
}*/这个批处理一次有500多条记录要更新,有修改和删除语句,可是发现只执行了一部分语句,为什么?
stmt = connect.createStatement();
for(int i=0;i<sqls.size();i++){
//count++;
//if(count < 100){
stmt.addBatch((String)sqls.get(i));
}
//else{
stmt.executeBatch();
// count = 0;
/* }
}
if(count > 00){
stmt.executeBatch();
}
}*/这个批处理一次有500多条记录要更新,有修改和删除语句,可是发现只执行了一部分语句,为什么?
2,更新ID <=2 这样看起来就只执行了2而看不到1的结果.
update table set value = 100 where id = 1
update table set value = 200 where id = 1
都加到批处理里面,最终的结果是什么?是这两条会按随机的顺序执行吗?
一个数据库有一个A表,首先从这个表里查出一些记录,比如几百条,当然,有一个字段比如标识codeCol 列可能有重复
然后要把这些记录更新到另一个数据库的一个B表中,两个表中要更新的字段是一样的,更新方式如下:
如果A表的codeCol记录在B表中有,则更新B表中该记录,若B表中没有,则向B表中插入该记录
而我的程序中可以手工在B表中插入记录
记录为val1, val2, val3, codeCol,val4 这个codeCol 是IP地址,可能的语句有 insert into tableTab value(val1,val2, val3, codeCol, val4)
update tableTab set val='a',val2='b', val3='c',val4='d' where codeCol = '1'
update tableTab set val='a',val2='b', val3='c',val4='d' where codeCol = '2'
update tableTab set val='a',val2='b', val3='c',val4='d' where codeCol = '3'
update tableTab set val='aa',val2='bb', val3='cc',val4='dd' where codeCol = '1'
这个没有问题吧,向第二条和第五条是按顺序执行呢,还是随机执行呢?