1.使用spring,不需要处理复杂的事务传播行为。
比如:我的代码中就出现了一种情况。存入帖子(cardDao.save(card)),还得存入图片(picDao.save(pic)),原来的代码没有加事务。后来要加事务了,
只能改动代码,把Connection对像做为参数传入方法中,示例代码如下
//没加事务 voic save(){ cardDao.save(card); picDao.save(pic); } //需要加事务 void save(){ Connection conn; conn.setAutocommit(false); cardDao.save(card,conn); picDao.save(pic,conn); conn.commit(); //省略 }
如果使用了spring,则只需要加个注解就可以解决问题
@Transactional(propagation=Propagation.REQUIRED) void save(){ cardDao.save(card); picDao.save(pic); } class CardDao{ @Transactional(propagation=Propagation.REQUIRED) void save(Card card){} } class PicDao{ @Transactional(propagation=Propagation.REQUIRED) void save(Pic pic){} }