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 TLS1.2协议通信解密
  • ¥40 图书信息管理系统程序编写
  • ¥20 Qcustomplot缩小曲线形状问题
  • ¥15 企业资源规划ERP沙盘模拟
  • ¥15 树莓派控制机械臂传输命令报错,显示摄像头不存在
  • ¥15 前端echarts坐标轴问题
  • ¥15 ad5933的I2C
  • ¥15 请问RTX4060的笔记本电脑可以训练yolov5模型吗?
  • ¥15 数学建模求思路及代码
  • ¥50 silvaco GaN HEMT有栅极场板的击穿电压仿真问题