欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

spring boot事务使用

程序员文章站 2022-07-04 23:43:14
...

spring boot 集成MyBatis 事务的使用

关于spring的事务说明查看 另一篇

spring的事务管理说明(记录) 也可查看 原文

spring boot整合MyBatis 推荐:使用Idea搭建spring boot整合MyBatis
本篇主要介绍spring boot 集成MyBatis事务的使用

一、spring boot与MyBatis集成

    1.添加spring boot 及MyBatis 依赖

        <parent>
		<groupId>org.springframework.boot</groupId>
		<artifactId>spring-boot-starter-parent</artifactId>
		<version>1.5.2.RELEASE</version>
		<relativePath/> <!-- lookup parent from repository -->
	</parent>

	<properties>
		<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
		<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
		<java.version>1.8</java.version>
	</properties>

	<dependencies>
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter</artifactId>
		</dependency>

		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-test</artifactId>
			<scope>test</scope>
		</dependency>
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-web</artifactId>
		</dependency>
                <dependency>
			<groupId>mysql</groupId>
			<artifactId>mysql-connector-java</artifactId>
		</dependency><!-- 使用druid 数据源
 --><dependency>
			<groupId>com.alibaba</groupId>
			<artifactId>druid</artifactId>
			<version>1.0.29</version>
		</dependency></dependencies>

2.配置数据源 application.properties添加如下peizhi

# 数据源基础配置
spring.datasource.type=com.alibaba.druid.pool.DruidDataSource
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
spring.datasource.url=jdbc:mysql://localhost:3306/shiro
spring.datasource.username=root
spring.datasource.password=123456
# 连接池配置
# 初始化大小,最小,最大
spring.datasource.initialSize=1
spring.datasource.minIdle=1
spring.datasource.maxActive=20
mybatis.mapper-locations=classpath:mapper/*Mapper.xml
##驼峰命名转换,写查询语句时,返回会将下划线的字段名自动转为驼峰命名方式
mybatis.mapUnderscoreToCamelCase= true

二、事务的配置

1.使用注解   @EnableTransactionManagement 和 @Transactional

在Service的实现类,类名或者方法名上 加@Transactional注解;如果在类名上加此注解,所有的public方法都会被事务管理,如果只是在某个方法名上加此注解只对该方法进行事务配置和管理(如果类名上已加,在方法名上再加会覆盖类的事务配置属性)。

比如对某插入的事务配置:

@Override
@Transactional(propagation = Propagation.REQUIRED,isolation = Isolation.DEFAULT,timeout=36000,rollbackFor={Exception.class,MyException.class})
public Integer add(User u) {
    return userMapper.insert(u);
}

2.启动类支持事务管理

@EnableTransactionManagement // 启注解事务管理
@SpringBootApplication
public class Application {
    public static void main(String[] args) {
        SpringApplication.run(Application .class, args);
    }
}
事务配置完成