04 Spring: 10.Spring中事务控制4 spring中事务控制的一组API、5 spring事务控制的代码准备、6 spring基于XML的声明式事务控制-配置步骤、7 spring基于注解的声明式事务控制   4 spring中事务控制的一组API 第2章 Spring 中的事务控制第一: JavaEE 体系进行分层开发,事务处理位于业务层, Spri            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-05-30 10:31:37
                            
                                79阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            文章一:  我们都知道事务的概念,那么事务的传播特性是什么呢?(此处着重介绍传播特性的概念,关于传播特性的相关配置就不介绍了,可以查看spring的官方文档)  
 在我们用SSH开发项目的时候,我们一般都是将事务设置在Service层 那么当我们调用Service层的一个方法的时候它能够保证我们的这个方法中执行的所有的对数据库的更新操作保持在一个事务中,在事务层里面调用的这些方法要么全            
                
         
            
            
            
            Spring框架为我们提供了一组事务控制的API,本文在此总结下如何通过XML方式和注解方式,进行配置事务控制。Spring 中事务控制的 API 介绍PlatformTransactionManager此接口是 spring 的事务管理器,它里面提供了我们常用的操作事务的方法,如下图: 我们在开发中都是使用它的实现类,如下图:TransactionDefinition它是事务的定义信息对象,里面            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-03-20 14:43:06
                            
                                79阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
             @Transactional注解中常用参数说明参数名称功能描述readOnly该属性用于设置当前事务是否为只读事务,设置为true表示只读,false则表示可读写,默认值为false。例如:@Transactional(readOnly=true)rollbackFor该属性用于设置需要进行回滚的异常类数组,当方法中抛出指定异常数组中的异常时,则进行事务回滚。例如:指定单一异常类:@T            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-04-08 10:42:54
                            
                                96阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            文章目录1 事务概念2 事务操作(搭建事务操作环境)3 事务操作(Spring事务管理介绍)4 事务操作(注解声明式事务管理)5 事务操作(声明式事务管理参数配置)6 事务操作(XML声明式事务管理)7 事务操作(完全注解声明式事务管理)8 事务原理8.1 MVCC8.1.1 MVCC基本概念8.1.2 MVCC实现原理8.1 隔离性原理8.2 一致性原理8.3 持久性原理8.4 原子性原理 1            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-10-22 19:36:34
                            
                                13阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            文章目录1 事务概念2 事务操作(搭建事务操作环境)3 事务操作(Spring事务管理介绍)4 事务操作(注解声明式事务管理)5 事务操作(声明式事务管理参数配置)6 事务操作(XML声明式事务管理)7 事务操作(完全注解声明式事务管理)8 事务原理8.1 MVCC8.1.1 MVCC基本概念8.1.2 MVCC实现原理8.1 隔离性原理8.2 一致性原理8.3 持久性原理8.4 原子性原理 1            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-10-20 14:04:58
                            
                                76阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            ######### 事务细节: # timeout:默认为 -1 超时,如果超出指定时间,事务将自动终止并回滚 (单位 : s ) # readOnly:默认为 false 指定事务 只读,会大大增加执行效率,但是如果 事务中不止读操作,还有其它增删改操作,那么 会报错 # 异常: 运行时异常(非检查异常) 默认 事务都回滚, 而 编译时异常(检查异常) 默认是事务不回滚 # noRollback            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-05-27 20:15:00
                            
                                104阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            1.基于XML配置的事务管理     1. Maven坐标:   <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-tx</artifactId&            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-03-20 14:07:45
                            
                                385阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            1.声明式事务@Transactional如果需要添加事务在类上或者public方法上添加@Transactional注解即可,如果某些方法不需要事务可以添加 @Transactional(propagation =Propagation.NOT_SUPPORTED),例如:@Transactional //开启事务
 public class TestServiceBean implements            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-03-19 22:09:15
                            
                                260阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            一、声明式事务 @Transactional   在事务代理上调用方法的执行路径示意图:   @Transactional注解配置  默认配置:    1、传播行为 PROPAGATION_REQUIRED      2、隔离级别 ISOLATION_DEFAULT    3、事务是读写的 read-write    4、事务超时默认为基            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-11-09 21:56:04
                            
                                299阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            # Spring Redis 默认超时时间设置
## 1. 简介
在使用Spring Redis时,需要设置默认超时时间以控制Redis缓存数据的过期时间。本文将介绍如何在Spring项目中设置Redis默认超时时间。
## 2. 步骤
下面是设置Spring Redis默认超时时间的步骤:
```mermaid
pie
    title 步骤
    "步骤1" : 了解RedisTe            
                
                    
                        
                                                            
                                                                        
                                                                                        原创
                                                                                    
                            2023-10-05 06:15:56
                            
                                85阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            一般情况下在方法上直接添加@Transactional即可,但是极有可能会达不到我们想要的效果,这时就需要添加相应的参数,参数如下。1. @Transactional(propagation=Propagation.REQUIRED) //控制事务传播。默认是Propagation.REQUIRED
2. @Transactional(isolation=Isolation.DEFAULT) //            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-04-01 13:18:16
                            
                                1203阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            事务具有最重要的两个特性:Spring事务的传播级别和数据库事务的隔离级别。传播级别定义控制范围,隔离级别定义数据库的读写等方面。Spring事务的传播级别:1. PROPAGATION_REQUIRED: 如果存在一个事务,则支持当前事务。如果没有事务则开启,。适用与大多数场景。
2. PROPAGATION_SUPPORTS: 如果存在一个事务,支持当前事务。如果没有事务,则非事务的执行。            
                
         
            
            
            
            1、先看代码1.1、spring-config.xml       1. <bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">  
2. "driverClassName" value="com.mysql.jdbc.Driver"/>  
3. "ur            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-08-29 11:52:36
                            
                                61阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            Spring事务五个特性:事务传播机制事务隔离机制只读事务超时回滚规则事务传播机制REQUIRED Spring默认的传播机制,能满足绝大部分业务需求。如果外层有事务,则当前事务加入到外层事务,一块提交,一块回滚。如果外层没有事务,则新建一个事务执行。REQUIRES_NEW 该事务传播机制是每次都会新开启一个事务。如果外层有事务,则将外层事务挂起,开启一个新事务,当当前事务执行完毕,再恢复外层事            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-07-03 12:24:44
                            
                                522阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            一般情况下在方法上直接添加@Transactional即可,但是极有可能会达不到我们想要的效果,这时就需要添加相应的参数,参数如下。@Transactional(propagation=Propagation.REQUIRED)           //控制事务传播。默认是Propagation.REQUIRED
@Transactional(isolation=Isolation.DEFAULT            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-04-03 10:30:28
                            
                                561阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            一.抛出事务不支持的异常原理: Spring事务默认支持RuntimeException异常,抛出的异常为RuntimeException异常及其子类异常事务均可生效,而我们日常常见的异常基本都继承自RuntimeException,所以无需指定异常类型事务也能生效。 但若手动抛出Exception异常,而Exception是RuntimeException的父类,会导致事务不生效。解决方案: 1            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-02-19 13:38:14
                            
                                50阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            事务的注解属性的说明:propagation:事务传播行为。isolation:事务隔离级别。readOnly:事务的读写性,boolean型。timeout:超时时间,int型,以秒为单位。rollbackFor:一组异常类,遇到时回滚。(rollbackFor={SQLException.class})。rollbackForCalssName:一组异常类名,遇到回滚,类型为string[]。            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-04-10 14:29:22
                            
                                205阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            MySQL server has gone away错误的最常见原因是服务器超时并关闭了连接。 对于这种情况,通常会获得以下错误代码(所获得的错误代码取决于操作系统)错误代码及描述 CR_SERVER_GONE_ERROR:客户端无法向服务器发送问题。 CR_SERVER_LOST:客户端写入服务器时并没有收到错误,但是没有得到问题的完整答案(或任何答案)。默认情况下,Mysql如果没有任何操作,            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-10-22 17:49:17
                            
                                161阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            首先来看一段代码@Transactional
public void getUser(Long id) {
    User user = new User("","",5L,"4",4,"44");
    userMapper.updateById(user);
    testTransactional();
}
public void testTransactional(){
    Us            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-10-22 11:13:56
                            
                                9阅读