spring boot mysql 事务

mysql默认 事务自动提交。即:每条insert/update/delete语句,不需要程序手工提交事务,而是mysql自行提交了。

如果我们想实现程序事务提交,需要事先关闭mysql的自动提交事务。

但是,如果采用spring管理事务,不需要实现关闭mysql自动提交事务的,因为,spring会帮你关闭mysql的自动提交事务。

spring:

<bean id="txManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
    <property name="dataSource" ref="dataSource" />
</bean>
<!-- enable transaction annotation support -->
<tx:annotation-driven transaction-manager="txManager" />

springboot:

1)、启动类上加@EnableTransactionManagement

@EnableTransactionManagement
@SpringBootApplication
@Slf4j
public class Application {
    public static void main(String[] args) {
        SpringApplication app = new SpringApplication(Application.class);
        app.setBannerMode(Banner.Mode.OFF);
        app.run(args);
        log.info("PortalApplication is success!");
    }
}

service的方法上加:@Transactional

@Transactional(readOnly = false, rollbackFor = Exception.class)
    public AddProjectInfoDto.Resp addPrj(AddProjectInfoDto.Req req) {
...
}

原文地址:https://www.cnblogs.com/yaoyuan2/p/10280544.html

时间: 2024-10-08 23:04:30

spring boot mysql 事务的相关文章

Spring Boot的事务管理注解@EnableTransactionManagement的使用

Spring Boot 使用事务非常简单,首先使用注解 @EnableTransactionManagement 开启事务支持后,然后在访问数据库的Service方法上添加注解 @Transactional 便可. 关于事务管理器,不管是JPA还是JDBC等都实现自接口 PlatformTransactionManager 如果你添加的是 spring-boot-starter-jdbc 依赖,框架会默认注入 DataSourceTransactionManager 实例.如果你添加的是 spr

spring boot 分布式事务解决方案LCN

对比LCN和saga(华为apache孵化器项目) ,LCN使用代理连接池封装补偿方法,saga需要手工写补偿方法,相对来说LCN使用更加方便. 参考官方地址: https://github.com/codingapi/tx-lcn/wiki/TxManager%E5%90%AF%E5%8A%A8%E8%AF%B4%E6%98%8E 1.    原理 1.     事务控制原理 LCN事务控制原理是由事务模块TxClient下的代理连接池与TxManager的协调配合完成的事务协调控制. TxC

Spring boot+Mysql+Spring data JPA一个Web的Demo

1.概述 因为要用spring boot,最近刚刚学习.这是一个web项目的配合mysq+Hibernate+tomcat的简单示例demo,很容易在此基础上扩展成自己的项目. 2.创建初始spring demo 作者用的IDE是IDEA,新建一个工程,选择Spring Initalizer.下一步的话由于作者需要部署到服务器上面,选择了war.不需要的话可以选择jar.选择spring web+spring Data JPA+Mysql Driver. 然后完成即可,首次运行的话配置依赖需要一

docker-compose + spring boot + mysql + redis + nginx 发布web应用: part 1

-----**  原创 **------ docker的使用现在越来越多,但多个容器的话,还要一个个的安装,比较麻烦.相比于k8s的“厚重”,docker-compose相对要简单得多.这里是一篇使用docker-compose,对spring boot应用进行一个集群(2个docker)发布的过程. 1. 前言    架构:spring boot使用nginx作为反向代理,redis作为缓存,mysql作为数据库,全部docker化.  环境:开发使用win 10笔记本, eclipse id

maven 构建spring boot + mysql 的基础项目

一.maven 依赖 <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>1.4.1.RELEASE</version> <relativePath /> <!-- lookup parent from repository --&

spring boot 中 事务配置

package org.whm.appcore; import java.util.Properties; import javax.sql.DataSource; import org.springframework.aop.framework.autoproxy.BeanNameAutoProxyCreator; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.

Spring Boot事务管理(中)

在上一篇 Spring Boot事务管理(上)的基础上介绍Spring Boot事务属性和事务回滚规则 . 4 Spring Boot事务属性 什么是事务属性呢?事务属性可以理解成事务的一些基本配置,描述了事务策略如何应用到方法上.事务属性包含了5个方面,如图所示,它们定义于TransactionDefinition接口类   1. 事务隔离级别 隔离级别是指若干个并发事务之间的隔离程度. Spring Boot的隔离级别被封装在枚举类Isolation,枚举值取自接口TransactionDe

spring boot + swagger + mysql + maven

1.首先编写 yaml 文件,创建项目所需的接口,在swagger.io官网上生成 spring boot项目: 2.由于生成的spring boot项目是公共类的所以还需要修改成所需的项目名称,主要修改四个地方,分别是: 1) 包名: 2)Application  : 3)把 configuration/SwaggerDocumentationConfig.java中的包名修改为现在的包名 4) 修改pom.xml文件 其中Artifact和Project两项 spring boot + my

Spring Boot 2.0(五):Docker Compose + Spring Boot + Nginx + Mysql 实践

我知道大家这段时间看了我写关于 docker 相关的几篇文章,不疼不痒的,仍然没有感受 docker 的便利,是的,我也是这样认为的,I know your felling . 前期了解概念什么的确实比较无聊,请不要着急精彩马上开始,当大家对 docker 相关概念有所了解之后,后面我会结合 Spring Boot 给大家来一系列的小例子,会让大家感受到使用 Docker 就是这么爽! 今天给大家演出的导演是 Docker 家族的 docker-compare ,主演是 Spring Boot.