使用JDBC事务管理,没有效果

来源:3-3 通过代码实现事务管理

慕粉3734731

2017-03-29 18:49

我使用的JDBC事务管理,为什么运行的结果跟没有使用结果相同

//有事务
 public String transaction(Account from,Account to,Double amount) throws SQLException {
  
  Connection conn=DBUtil.getConn();
  conn.setAutoCommit(false);
  
  try {
   AccountDao accountDao=new AccountDao();
   TransactionDao transDao=new TransactionDao();
   
   //客户付钱
   from.setAmount(from.getAmount()-amount);
   accountDao.update(from);
   
   String a=null;
   a.split("1");
   
   //银行收钱
   to.setAmount(to.getAmount()+amount);
   accountDao.update(to);
   
   //添加交易信息
   Transaction trans=new Transaction();
   
   trans.setSource_account(from.getAccount());
   trans.setDestination_account(to.getAccount());
   trans.setAmount(amount);
   trans.setSource_id(from.getId());
   trans.setDestination_id(to.getId());
   
   transDao.add(trans);
   conn.commit();
   
   return "success";
  } catch (Exception e) {
   // TODO Auto-generated catch block
   conn.rollback();
   e.printStackTrace();
   return "fail"; 
  }
  
 }

写回答 关注

3回答

  • 慕神2962879
    2017-09-06 12:17:31

    两个都是有事务的,添加交易信息那里

  • 慕粉3734731
    2017-03-31 08:56:49

    //没有事务
     public String trans(Account from,Account to,Double amount) throws Exception{
      AccountDao accountDao=new AccountDao();
      TransactionDao transDao=new TransactionDao();
      
      //客户付钱
      from.setAmount(from.getAmount()-amount);
      accountDao.update(from);
      
      //客户付了钱,银行没有收到钱
    //  String a=null;
    //  a.split("1");

      
      //银行收钱
      to.setAmount(to.getAmount()+amount);
      accountDao.update(to);
      
      //添加交易信息
      Transaction trans=new Transaction();
      
      trans.setSource_account(from.getAccount());
      trans.setDestination_account(to.getAccount());
      trans.setAmount(amount);
      trans.setSource_id(from.getId());
      trans.setDestination_id(to.getId());
      
      transDao.add(trans);
      
      return "success"; 
     }

    这是没有事务的,我的mysql引擎也是InnoDB的

  • 慕虎6436455
    2017-03-30 17:17:58

    你未使用事务的代码是什么?


JDBC之“对岸的女孩走过来”

JDBC的深入挖掘,主要介绍在实际开发过程中的各种知识

49845 学习 · 86 问题

查看课程

相似问题