现在写一个项目,有一些操作要么都完成,要么都不完成,正好用上事务。
但我查了一下,最简单是用在SQL上的Connection的事务。
我想问问,有没有用在一般情况下的事务的用法。
我查看了一下API,在J2EE上有有关说明,但因为是全英文,看不太懂,是一个javax.transaction接口。
而对接口,我总是掌握得不好,所以就不知道怎么实现了。
例如下面的代码:int i=0,j=3;
try{
beginTransaction;
i++;
j+=2;
commit;
}catch(Exception e){
rollback;
}请求告知的类和用法的相关代码,谢谢!

解决方案 »

  1.   

    此回复为自动发出,仅用于显示而已,并无任何其他特殊作用
    楼主【siu5】截止到2008-06-28 01:00:30的历史汇总数据(不包括此帖):
    发帖数:26                 发帖分:855                
    结贴数:21                 结贴分:755                
    未结数:5                  未结分:100                
    结贴率:80.77 %            结分率:88.30 %            
    楼主加油
      

  2.   

    没有人回复我。
    我自己写了一个继承TransactionManager的类,然后用Main方法测试。但结果却是不回滚的。package biz;import javax.transaction.HeuristicMixedException;
    import javax.transaction.HeuristicRollbackException;
    import javax.transaction.InvalidTransactionException;
    import javax.transaction.NotSupportedException;
    import javax.transaction.RollbackException;
    import javax.transaction.SystemException;
    import javax.transaction.Transaction;
    import javax.transaction.TransactionManager;public class TestTM implements TransactionManager { public void begin() throws NotSupportedException, SystemException {
    // TODO Auto-generated method stub } public void commit() throws RollbackException, HeuristicMixedException,
    HeuristicRollbackException, SecurityException,
    IllegalStateException, SystemException {
    // TODO Auto-generated method stub } public void rollback() throws IllegalStateException, SecurityException,
    SystemException {
    // TODO Auto-generated method stub } public static void main(String [] ar) throws IllegalStateException, SystemException{
    int a=3,b=1,c=12,d=20;
    TestTM tm=new TestTM();
    try{
    tm.begin();
    a=9*a;
    b=b-1;
    c=c/b;
    d=d/2;
    tm.commit();
    }catch(Exception e){
    e.printStackTrace();
    tm.rollback();
    }
    System.out.println("a, b, c, d="+a+" "+b+" "+c+" "+d);
    }
    }本来,如果会回滚的话,答案应该是:3 1 12 20,
    但运行之后,答案是:27 0 12 20。
    请问哪里不对。另外,这段代码用JCreator来写的话(不包括第一句),会显示“找不到符号”。请问是什么意思?要怎样修改?
      

  3.   

    唉,看来很麻烦。
    是不是只能用回Connection的那个那些方法了?