我只会一种事务就是由jdbc控制的,如果A要在转账100元到B用户,
首先 sql1 = '减去100在A的账户' 再次sql=‘加100在B的账户’
是这样吗?
开始   
  con.setAutoCommit(false);   
  stmt   =   con.createStatement();   
  stmt.execute(sql1);   
  stmt.execute(sql2);   
  con.commit();   
 结束 
还是这样 
con.setAutoCommit(false);   
  stmt   =   con.createStatement();   
  stmt.execute(sql1+";"+sql2);   
  con.commit(); 
还是其他的方法  

解决方案 »

  1.   

    放在Try中,用catch捕获异常,然后事务回滚!
      

  2.   

    这个情况有很多种的如果A账户和B账户在同一个数据库中,这时,可以用同一个事物进行控制,至于你写法都能执行,这个不重要,不过记得捕捉一下异常,发生异常要进行事物的回滚。如果A账户和B账户不在同一个数据库中,举个例子:现实中咱们要进行一次跨行转账,那么就是2个事物,就不是简单的控制方式能够实现的了,这就涉及到一个分布式的事物问题,可以用EJB来管理