读书人

(转)Spring编程式事宜

发布时间: 2012-09-13 09:51:52 作者: rapoo

(转)Spring编程式事务
PlatformTransactionManagerTransactionTemplate
一、使用PlatformTransactionManager

<bean id="transactionManager" value="PROPAGATION_REQUIRED"></property>    </bean>

public class TempService {    private UserDAO userDAO;    private DeptDAO deptDAO;    private TransactionDefinition txDefinition;    private PlatformTransactionManager txManager;     public void setUserDAO(UserDAO userDAO) {       this.userDAO = userDAO;    }    public void setDeptDAO(DeptDAO deptDAO) {       this.deptDAO = deptDAO;    }    public void setTxDefinition(TransactionDefinition txDefinition) {       this.txDefinition = txDefinition;    }    public void setTxManager(PlatformTransactionManager txManager) {       this.txManager = txManager;    }    public void addTemp(){       TransactionStatus status = txManager.getTransaction(txDefinition);//       try {           User user = new User();           Dept dept = new Dept();           user.setRemark("USER REMARK");           dept.setRemark("DEPT REMARK");           userDAO.save(user);           deptDAO.save(dept);           txManager.commit(status);//提交事       } catch (Exception e) {           txManager.rollback(status);           e.printStackTrace();       }    }}

二、使用TransactionTemplate
<bean id="txTemplate" ref="transactionManager"></property>        <property name="propagationBehaviorName" value="PROPAGATION_REQUIRED"></property>    </bean>

public class Temp1Service {    private UserDAO userDAO;    private DeptDAO deptDAO;    TransactionTemplate txTemplate;    public void setUserDAO(UserDAO userDAO) {       this.userDAO = userDAO;    }    public void setDeptDAO(DeptDAO deptDAO) {       this.deptDAO = deptDAO;    }    public void setTxTemplate(TransactionTemplate txTemplate) {       this.txTemplate = txTemplate;    }    public void addTemp(){       txTemplate.execute(new TransactionCallback(){           public Object doInTransaction(TransactionStatus status){              try {                  User user = new User();                  Dept dept = new Dept();                  user.setRemark("USER REMARK");                  dept.setRemark("DEPT REMARK");                  userDAO.save(user);                  deptDAO.save(dept);              } catch (Exception e) {                  status.setRollbackOnly();//                  e.printStackTrace();                  return false;              }              return true;           }       });    }}

转自:http://blog.csdn.net/trwhoya/archive/2009/09/10/4539366.aspx

读书人网 >编程

热点推荐