写了一段jdbc语言用来调用一个表里的数据然后逐行更新另一个表里的数据
程序如下:可是为什么不能够随着变量t的增加而逐行更新。
前辈大哥们帮帮忙!!!非常感谢!!!
 for(t=0;t<=n;t++){
                con.setAutoCommit(false);
                     
                toUpdate.addBatch("update jshtzgsb set yearn=(select year1 from jshtzb where ID='"+t+"') where ID='"+t+"'");
                        toUpdate.executeBatch();
                        con.commit();
                        con.setAutoCommit(true);            }

解决方案 »

  1.   

    此回复为自动发出,仅用于显示而已,并无任何其他特殊作用
    楼主【kaixuan1983】截止到2008-07-25 16:00:13的历史汇总数据(不包括此帖):
    发帖的总数量:14                       发帖的总分数:290                      每贴平均分数:20                       
    回帖的总数量:34                       得分贴总数量:5                        回帖的得分率:14%                      
    结贴的总数量:12                       结贴的总分数:240                      
    无满意结贴数:3                        无满意结贴分:90                       
    未结的帖子数:2                        未结的总分数:50                       
    结贴的百分比:85.71 %               结分的百分比:82.76 %                  
    无满意结贴率:25.00 %               无满意结分率:37.50 %                  
    楼主加油
      

  2.   

    首先设下断点判断是否进入循环体。如果进入循环体可以通过DEBUG工具跟踪循环次数和执行的结果。
      

  3.   

    con.setAutoCommit(true); 
    干吗这样写?
    直接con.commit();不就完了
      

  4.   


    老大你写得真有意思啊,呵呵。con.setAutoCommit(false); 
    for(t=0;t <=n;t++){ 
                    
                        
      toUpdate.addBatch("update jshtzgsb set yearn=(select year1 from jshtzb where ID='"+t+"') where ID='"+t+"'"); 
    }     toUpdate.executeBatch(); 
         con.commit(); 
      

  5.   

    每次更新后把Statement(PreparedStatement)对象关掉试试。
      

  6.   

    逐行更新,你用batch干什么?
    batch是将所有的update语句,一次性成批更新.
    想要一行一行的来,你就用PreparedStatement来做,效率也很高.要是想所有的都能成功更新.可以这样:
                for(t=0;t <=n;t++){ 
                    con.setAutoCommit(false); 
                        
                    toUpdate.addBatch("update jshtzgsb set yearn=(select year1 from jshtzb where ID='"+t+"') where ID='"+t+"'"); 
                }
                toUpdate.executeBatch(); 
                con.commit(); 
                con.setAutoCommit(true);