为什么执行只是更新一条数据,帮看看
String sql1 = "select first 10 * from loancib:AGGREGATE_MEMBER " ;
pstm = con.prepareStatement(sql1);
rs = pstm.executeQuery();
int i = 1;
while(rs.next()){
String sql = "update AGGREGATE_MEMBER set Reason=? where CustomerNo=? ";
pstm = con.prepareStatement(sql);
String str = rs.getString("Reason") ;
if(str!= null){
pstm.setString(1, str);
pstm.setString(2, rs.getString("customerid"));
pstm.addBatch();
if(i==1000){
con.setAutoCommit(false);
pstm.executeBatch();
con.setAutoCommit(true);
pstm.clearBatch();
i=0;
con.commit();
}
System.out.println("success!"+i);
i++;
}
------解决方案--------------------你断点进去看看 执行顺序
------解决方案--------------------断点一下吧。这个一下看不出问题了
------解决方案--------------------这里:pstm = con.prepareStatement(sql);
每次循环的时候都会生成个新的prepareStatement,所以只能更新一条数据。
------解决方案--------------------
------解决方案--------------------放在while循环的外面,这样就说明执行修改成功后没有异常才可以提交事物!