首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > Java相关 >

为什么执行只是更新一条数据,帮看看,该怎么处理

2012-03-22 
为什么执行只是更新一条数据,帮看看String sql1 select first 10 * from loancib:AGGREGATE_MEMBER

为什么执行只是更新一条数据,帮看看
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,所以只能更新一条数据。

[解决办法]

探讨
呵呵,拿到循环外面去啊。

String sql = "update AGGREGATE_MEMBER set Reason=? where CustomerNo=? ";
pstm = con.prepareStatement(sql);

拿到While上面去。

[解决办法]
放在while循环的外面,这样就说明执行修改成功后没有异常才可以提交事物!

热点排行