xo_tobacoo 2008-06-19 10:12
浏览 140
已采纳

事务中处理回滚

问题:更新两个不同厂商的数据库(如informix和oracle),必须同时更新成功,或者其中一个失败时都要回滚。
怎么解决?

  • 写回答

3条回答 默认 最新

  • iteye_17163 2008-06-19 10:43
    关注

    最傻的办法就是这样了...
    [code="java"]
    ......
    try{
    //改变自动提交方式.
    connOracle.setAutoCommit(false);
    connInformix.setAutoCommit(false);

    stmt = connOracle.createStatement();
    stmt = connInformix.createStatement();
    
    stmt.executeUpdate("UPDATE ... SET ...");
    stmt.executeUpdate("UPDATE ... SET ...");
    
    connOracle.commit(); 
    connInformix.commit();
    connOracle.close();
    connInformix.close();
    

    }catch(Exceptin ex){
    //出错则一起回滚
    connOracle.rollback();
    connInfomix.rollback();
    connOracle.close();
    connInformix.close();
    ex.printStackTrace();
    }
    [/code]

    还有个办法就是使用JTA事务..不过在下不才...目前还不会.楼主可以多参考些这方面的资料..

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?