spring事务回滚配置文件方式

目录结构一览:

spring事务回滚配置文件方式_第1张图片

需要导入的jar包(红色框处的地方是添加事务专门加上的)

spring事务回滚配置文件方式_第2张图片

新添加配置文件中的约束:

spring事务回滚配置文件方式_第3张图片

其他文件都跟之前的一样,所以专门说一下配置文件跟如何事务处理的



        
        
        
        
       	
       	
        
        
        
        	
        	
        	
        	
        	
        
        
        
        
        
        
        	
        	
        	
        	
        	
        	
        
        
        
        
       
       
       		
       		
       		
       			
       		
       			
       
       
       
       
       
       
       		
       		
       
       
       
       
       		
       		
       			
       			
       			
       			
       			
       		
       
       
       
       
       		
       		
       		
       		
       

在UserServiceImpl中,deleteById方法,我们设置个异常,system.out.println(1/0),该语句会出现异常,当我们不提供事务时候,就没有回滚功能,出现异常之前对数据库的操作,会终止,出现异常之后的语句,不会执行,这是我们不想看到的。我们希望出现异常后,一切对数据库的操作都会还原。

package com.hpe.service.impl;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import com.hpe.mapper.UserMapper;
import com.hpe.po.User;
import com.hpe.service.IUserService;

@Service
public class UserServiceImpl implements IUserService {
	
	@Autowired
	private UserMapper userMapper;
	
	
	@Override
	public User selectUserById(int id) {
		
		return userMapper.selectUserById(id);
		
	}

	public int deleteUserById(int id) {
		userMapper.deleteUserById(id);
		System.out.println(1/0);
		userMapper.deleteUserById(id+1);
		return 0;
	}

}

我们可以用junit测试,不加事务处理,userMapper.deleteUserById(id);会在数据库生效,但是加上事务,虽然执行了,但是回滚以后,数据库不会有变化,即删除功能失效。

package com.hpe.test;

import org.junit.Test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

import com.hpe.po.User;
import com.hpe.service.IUserService;

public class SpringMyBatisTest {
	
	@Test
	public void test()
	{
		
		ApplicationContext context= new ClassPathXmlApplicationContext("applicationContext.xml");
		
		IUserService userService = context.getBean(IUserService.class);
		
		User user = userService.selectUserById(7);
		
		System.out.println(user);
	}
	
	@Test
	public void test1()
	{
		
		ApplicationContext context= new ClassPathXmlApplicationContext("applicationContext.xml");
		
		IUserService userService = context.getBean(IUserService.class);
		
		int res = userService.deleteUserById(6);
		
		System.out.println(res);
		
	}

}


你可能感兴趣的:(Spring,spring事务添加)