SpringBoot学习笔记五:springBoot添加数据库事务支持

一、在启动文件里加上注释@EnableTransactionManagement;

package com.springboot.business;

import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.transaction.annotation.EnableTransactionManagement;

/**
 * 项目启动类
 * @author wang
 *
 */
//加入扫描 依赖,就不需要在每个mapper中加入注解@Mapper
@MapperScan("com.springboot.business.mapper")
//springBoot数据库事务支持
@EnableTransactionManagement
@SpringBootApplication
public class Application {

	public static void main(String[] args) {
		SpringApplication.run(Application.class, args);
	}

}

二、在service实现类中加上@Transational注解,需要这两步操作即可;

/**
	 * @Transactional:数据库事务支持
	 * 修改
	 */
	@Transactional
	@Override
	public int updateByPrimaryKeySelective(AdminUser record) {
		
		int num = adminUserMapper.updateByPrimaryKeySelective(record);
		System.out.println("成功修改数据:"+num);
		//此处报java.lang.NumberFormatException: null
		//上面修改的数据将会进行回滚操作
		Integer.valueOf(null);
		return num;
	}

三、测试:在controller中编写测试方法,后台会打印修改 条数,但是访问后后台报异常,数据库修改操作将会回滚;

/**
	 * 更新测试数据库事务支持
	 * @return
	 */
	@GetMapping("/demo/updateOne")
	public String updateModel() {
		AdminUser adminUser = new AdminUser();
		adminUser.setAdminUserId(1);
		adminUser.setLoginUserName("王 小小小伟");
		int num = adminUserService.updateByPrimaryKeySelective(adminUser);
		return num==0?"0条":num+"条";
	}
经验分享 程序员 微信小程序 职场和发展