用的是JDBC,数据库oracle 9i,现在有数据库A,数据库B,数据库A有两个表A1,A2,数据库B有表B1,B2,A1和B1,A2和B2的结构都相同,
其中A1和A2是主从表关系,B1和B2是主从表关系,现在的需求是要将A1,A2表中的数据复制到数据库B的B1表和B2表,考虑到事务的问题,我想如下设计,但
感觉好象比较麻烦,看大家有无好的办法.注意,我没用触发器,用代码.  try
   {
    begin transcation
      boolean b1=插入B1();
      boolean b2=插入B2();
    if b2=false then 回滚B1的事务;
    if (b1=true) and (b2=true) 
    {
       boolean b3=更新A1();
     if b3=false then 回滚b2,回滚B1
}
}

解决方案 »

  1.   

    多个数据库之间的事务管理应该用JTA来解决吧。
    =======================================
    Oracle有savepoint,试试Connection.setSavepoint(),rollback(Savepoint savepoint) 能不能解决
      

  2.   

    1 )先把A1表要复制到B1表的数据都读出来,放到List中,然后
         boolean b1=insertb1(); (如果b1=true,则代表成功插入b1,否则为false)
    2)  由于插入B2表时,需要先到A2表中取某个内容 C,再到B1表中取某个内容D,再把C,D插入到B2表中去。
          所以 boolean b2=insertb2();
         if b2=false  then  rollback b1;
    3)  if b1=true and b2=true 
         {
        
            boolean a2=更新a2表();
          }
          if a2=false then roolback b1,b2