mybatic与spring结合的事务管理

mybatic与spring结合的事务管理

原文地址:http://czj4451.iteye.com/blog/2037759

mybatis与spring结合后,事务管理更加方便,这里介绍使用transactionnal的方式,有错的的地方,希望大家指出。

1. 和Spring集成后,使用Spring的事务管理:

a. @Transactional方式:

在类路径下创建beans-da-tx.xml文件,在applicationContext-resources.xml的基础上加入事务配置:

class="org.springframework.jdbc.datasource.DataSourceTransactionManager">

服务类:

@Service("userService")

publicclass UserService {

@Autowired

IUserMapper mapper;

publicint batchUpdateUsersWhenException() {// 非事务性

User user =new User(9,"Before exception");

int affectedCount = mapper.updateUser(user);// 执行成功

User user2 =new User(10,"After exception");

int i =1 /0;// 抛出运行时异常

int affectedCount2 = mapper.updateUser(user2);// 未执行

if (affectedCount ==1 && affectedCount2 ==1) {

return1;

}

return0;

}

@Transactional

publicint txUpdateUsersWhenException() {// 事务性

User user =new User(9,"Before exception");

int affectedCount = mapper.updateUser(user);// 因后面的异常而回滚

User user2 =new User(10,"After exception");

int i =1 /0;// 抛出运行时异常,事务回滚

int affectedCount2 = mapper.updateUser(user2);// 未执行

if (affectedCount ==1 && affectedCount2 ==1) {

return1;

}

return0;

}

}

你可能感兴趣的:(mybatic与spring结合的事务管理)