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条)

报告相同问题?

悬赏问题

  • ¥15 一直显示正在等待HID—ISP
  • ¥15 Python turtle 画图
  • ¥15 关于大棚监测的pcb板设计
  • ¥15 stm32开发clion时遇到的编译问题
  • ¥15 lna设计 源简并电感型共源放大器
  • ¥15 如何用Labview在myRIO上做LCD显示?(语言-开发语言)
  • ¥15 Vue3地图和异步函数使用
  • ¥15 C++ yoloV5改写遇到的问题
  • ¥20 win11修改中文用户名路径
  • ¥15 win2012磁盘空间不足,c盘正常,d盘无法写入