您的位置:首页 > 其它

SSM框架下声明式事务管理(注解配置方式)

2017-03-09 16:06 579 查看
一、spring-mybatis.xml文件中加入事务管理配置



二、在调用的方法上加上@Transactional注解(必须为public方法才行,不要捕捉异常,要让异常自动抛出,否则不能进行事务回滚。方法要写在服务层中在controller中无效)

@Transactional
@Override
public void transactionalTest(List<Tuser> list) {
for(int i=0;i<list.size();i++){
/* if(i==0){
tuserMapper.insertSelective(list.get(i));
}else{
throw new RuntimeException();
}*/

if(i==0){
tuserMapper.updateByPrimaryKeySelective(list.get(i));
}else if(i==1){
//int j=1/0;//产生异常
}else{
tuserMapper.insertSelective(list.get(i));
}
}
}


三、测试方法(用JUnit进行测试)

@Test
public void test4(){
List<Tuser> list = new ArrayList<Tuser>();
Tuser tuser = new Tuser();
tuser.setId("0ce64eea-98d6-462b-9982-4b0816126495");
tuser.setName("name1edit");
tuser.setPwd("0");
tuser.setSjh("111");
list.add(tuser);
//int l = userService.insertSelective(tuser);
//int i=1/0;
Tuser tuser1 = new Tuser();
tuser1.setId(UUID.randomUUID().toString());
tuser1.setName("name2");
tuser1.setPwd("1");
tuser1.setSjh("222");
list.add(tuser1);
Tuser tuser2 = new Tuser();
tuser2.setId(UUID.randomUUID().toString());
tuser2.setName("name3");
tuser2.setPwd("2");
tuser2.setSjh("333");
list.add(tuser2);
//int l2 = userService.insertSelective(tuser1);
userService.transactionalTest(list);
}


简单记录下,仅供参考。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: