Spring学习笔记(18)----使用Spring配置文件实现事务管理


由于我们要拦截UserDAOImpl中的方法,因此我们需要在配置文件中配置信息,在配置文件中使用了AOP技术来拦截方法。

<aop:config>
    <aop:pointcut id="transactionPointcut" expression="execution(* com.szy.spring.dao.impl..*.*(..))"/>
    <aop:advisor advice-ref="txAdvice" pointcut-ref="transactionPointcut"/>
  </aop:config> 
  <tx:advice id="txAdvice" transaction-manager="txManager">
     <tx:attributes>
      <!-- 如果连接的方法是以get开头的方法,则不使用事务 -->
       <tx:method name="get*" read-only="true" propagation="NOT_SUPPORTED"/>
       <tx:method name="*"/>
     </tx:attributes>
  </tx:advice>

  

这样Spring就能对这个类进行事务管理。

 

下面我们测试下数据库操作是否在同一事务中执行。

假设我们的delete方法如下:

public void delete(int id)
 {
  jdbcTemplate.update("delete from users where id=?", new Object[]{id},
    new int[]{java.sql.Types.INTEGER});
  jdbcTemplate.update("delete from users1 where id=10");
 }

 

 

在第二条删除语句中,users1表是不存在的,如果两次update语句是在两个事务中执行,则第一条能成功执行,并且数据库中该id的记录已经被删除,而第二条由于不存在该表不能正常删除。如果在同一事务中执行,由于第二条update出错,数据库中不能删除任何记录。

测试代码:

@Test
 public void testDelete()
 {
  userDAO.delete(5);
 }

 
 程序报错,同时id=5的记录没有被删除。如果我们把配置文件中关于事务配置的信息给注释掉,再次测试,程序同样报错,但是id=5的记录被成功删除掉,这说明这两条update语句是在两个不同的事务中运行。

 

PS:在平时开发中,Spring团队建议使用注解的方式进行配置,这样配置文件显得精简,同时也会做到精确控制。

【32】OpenCV——图像含义关系?RGGB , BGGR , GRBG , GBRG呢?raw8,raw10,raw12,raw14呢? YUV422; RAW16呢?YCbYCr/RG_GB; ‌如前所述,定义原始数据的位深精度。‌* ‌一种压缩色彩编码方式,通过色度抽样(亮度Y全分辨率,色度U/V半分辨率)减少数据量,常用于视频传输。‌* ‌可能指每个像素分量占16位存储(如高位填充的RAW10/12/14),或未明确量化的高精度原始数据。‌ ‌分类‌核心定义‌关联性及典型应用传感器原始色彩排列(RGGB/BGGR等)决定RAW数据的色彩分布规则RAW位深每个分量的数据精度(8/10/12/14位)影响动态范围和存储空间‌YUV422。 阅读详情

相关推荐

STM32巡线小车PID调参实战:从五路灰度传感器数据到稳定运行的避坑指南

本文详细介绍了STM32巡线小车的PID调参实战,从五路灰度传感器数据处理到PID参数优化,提供了系统化的调试方法和常见问题解决方案。通过加权平均法计算偏移量,逐步调整比例、积分、微分参数,实现小车稳定巡线。文章还涵盖了定时器配置、控制周期优化及高级调试技巧,帮助开发者避开常见陷阱,提升巡线性能。

weixin_42570484的博客 193

Spring事务控制--Spring中的事务处理

事务回顾 什么是事务? 事务是逻辑上的一组操作,组成这组操作的各个逻辑单元,要么一起成功,要么一起失败。 事务的特性 原子性:强调事务的不可分割 一致性:事务执行的前后数据的完整性要保持一致 隔离性:一个事务的执行过程中不应该受到其他事务的干扰 持久性:事务一旦结束,数据就持久化到数据库 如果不考虑隔离性会引发安全性问题 脏读:一个事务读到了另一个事务的未提交的数据 不可重复读:一个事务读...

方圆几里 4万+

RK3588开发板实战:从零开始移植Ubuntu 24.04(讯为SDK版)

本文详细介绍了如何在RK3588开发板上从零开始移植Ubuntu 24.04系统(讯为SDK版),涵盖开发环境准备、SDK解析、根文件系统定制、驱动适配、系统集成与烧录等全流程。通过实战案例,帮助开发者快速掌握RK3588开发板的系统移植技巧,适用于嵌入式开发与定制化Linux系统构建。

sand8的博客 437

使用Spring框架实现数据库事务处理

企业级应用系统在更新数据库数据时,一般都采用数据库事务处理,以确保数据库数据的一致性。本文主要讨论在Spring框架中如何使用数据库事务处理更新数据库数据。通过本课的学习,可以达到如下目标。 ● 了解JDBC对数据库事务处理的支持 ● 掌握在Spring框架中使用事务处理的技术 事务处理对数据库来说,是对数据库的一系列SQL语句操作,这些操作被组织为一个事务。事务具有原子性,即事物中的操作要...

smilejiasmile的博客 2509

避坑指南:解决‘Logical volume contains a filesystem in use’错误,顺利完成LVM根目录扩容

本文详细解析了Linux系统中LVM根目录扩容时遇到的‘Logical volume contains a filesystem in use’错误,提供了从错误诊断到实战解决方案的完整指南。通过动态扩容技术、单用户模式操作和LVM快照等方案,帮助管理员顺利完成根目录扩容,避免数据丢失和系统崩溃。

weixin_28702105的博客 227

SAP FICO 资产会计AA后台配置 (上)

输入折旧表“CZ11”如有外币计价的资产,则需指定外币计价的资产折旧范围,以及规则。因为在设置资产类型时,需指定一个对应的 资产编号范围、资产账户确定类型(便于分配自动会计科目)、屏幕格式规则(便于设置资产字段必填与否)。因为在设置资产类型时,需指定一个对应的 资产编号范围、资产账户确定类型(便于分配自动会计科目)、屏幕格式规则(便于设置资产字段必填与否)。新增资产类型:Z101 固定资产-房屋及建筑物新增资产类型:Z301 固定资产-房屋及建筑物。

ghgxm520的博客 1762

使用Spring配置文件实现事务管理

前面我们讲解了使用Spring注解方式来管理事务,现在我们就来学习使用Spring配置文件实现事务管理。本文是建立在使用Spring注解方式管理事务与传播行为详解案例基础之上的。 首先我们在cn.itcast.service.impl包下再新建一个业务bean——PersonServiceBean2.java,其代码为:/** * 使用JdbcTemplate进行insert/update/de

李阿昀的博客 5741

【SigmaStar SSC335系列】空片用Flash_Tool烧写

简介 本文主要讲新拿到的PCBA,板上spi nand flash还是空的,如何在这种情况下烧录固件,这里讲解用官方Flash_Tool烧写的方式。 但只讲一些注意的地方和坑,其它的官方文档里说的比较清楚,不多说。 准备 Flash_Tool烧写软件 编译打包好烧写镜像 串口烧录小板 ----- 这个是个坑,在官方文档里并没有提及,刚开始用的平时调试的USB转串口,怎么都没反应,一度不知烧写软件不对还是硬件有问题,最后通过厂家技术支持才得知,除了专门的Flash_Tool外,还要专门的串口烧录器

老K 4700

Spring——Spring中的事务、使用注解(@Transactional)控制事务、使用AspectJ框架控制事务

Spring——Spring中的事务、使用注解(@Transactional)控制事务、使用AspectJ框架控制事务

贝尔摩德苦艾酒 1万+

使用 MATLAB/Simulink + Simscape Electrical,构建一个含储能的微电网系统,实现储能系统与并网逆变器的协同控制

摘要:本文基于Simulink平台,详细介绍了微电网中储能系统与并网逆变器的协同控制建模与仿真方法。主要内容包括:1)构建包含光伏、风电、锂电池和双向DC-DC变换器的微电网系统;2)设计并网逆变器的PQ/Vf双模式控制策略;3)实现储能系统与逆变器的协同控制逻辑,包括SOC保护和功率分配;4)通过多种工况仿真验证系统性能。结果表明,该系统能有效维持微电网稳定运行,支持并网/离网无缝切换。文章还探讨了优化方向和应用扩展,为新能源微电网控制提供了实用参考。

xiaoheshang_123的博客 101

如何使用 ABAP 代码调度一个 ABAP 程序,让其以后台作业的方式运行

笔者之前的教程,介绍了如何使用 SM36 一系列事务码,将一个 ABAP 程序,调度成以后台作业方式运行的详细步骤。 38. 如何让 ABAP 报表在后台作业的模式下运行 大家如果照着上述文章的步骤走一遍,会发现这些手动执行的步骤还是有些繁琐的。 有没有可能让这一切都自动化起来,即通过 ABAP 代码去完成呢?当然可以。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 1944

Spring系列教程——16Aop事务配置与注解事务配置

Spring系列教程——15Aop事务配置与注解事务配置

qq_44932835的博客 409

开源项目evo2安装教程

Evo 2 是一种先进的 DNA 语言模型,用于长上下文建模和设计。Evo 2 使用 StripedHyena 2 架构在单核苷酸分辨率下对 DNA 序列进行建模,上下文长度可达 100 万碱基对。Evo 2 使用 Savanna 进行预训练,并在 OpenGenome2 数据集上进行自回归训练,该数据集包含来自所有生命领域的 8.8 万亿个标记。

猿小白的博客 927

18-Spring5 基于xml配置文件开启事务管理

1.xml 配置步骤 第一步、配置事务管理器 第二步、配置通知 第三步、配置切入点和切面 2.项目代码 bean1.xml配置文件 <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:conte

鸣鼓ming的博客 1926

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

Spring整合MyBatis之xml配置文件(包含事务管理)详细教程

Spring整合MyBatis之xml配置文件

majingbobo的博客 2107

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

Spring 使用Hibernate事务管理:update等操作无效果问题

不 | REQUIRED | 事务传播行为REQUIRED:支持当前事务,如果当前没有事务,就新建一个事务。这是最常见的选择。SUPPORTS:支持当前事务,如果当前没有事务,就以非事务方式执行。MANDATORY:支持当前事务,如果当前没有事务,就抛出异常。REQUIRES_NEW:新建事务,如果当前存在事务,把当前事务挂起。NOT_SUPPORTED:以非事务方式执行操作,如果当前存在事务,就把当前事务挂起。NEVER:以非事务方式执行,如果当前存在事务,则抛出异常。

2401_83740129的博客 981

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

spring mvc 小记(七):关于spring事务管理

使用spring mvc已有2年之久,却还是停留在使用阶段,感觉这么下去不是办法,所以还是想往深处一探究竟。 spring事务管理 事务,简单的说,就是对于一个操作来说,要么都成功,要么都失败,这样可以保证数据的一致性,在spring mvc中也可以配置相应的事务管理器,有两种实现方法:XML和注解。 XML配置方式实现事务 在spring配置文件中,初始化一个事务管理器,同时将数据源注入

平凡的世界 3405

使用Spring Boot实现事务管理

使用Spring Boot实现事务管理大家好,我是微赚淘客系统3.0的小编,是个冬天不穿秋裤,天冷也要风度的程序猿!Spring Boot中的事务管理在现代的企业应用程序中,事务管理是确保数据完整性和一致性的关键部分。Spring Boot框架通过其强大的事务管理机制,为开发人员提供了简单而高效的方式来管理事务。本文将深入...

weixin_41786488的博客 91

Spring框架 (18) —— Spring的事务管理

基于注解配置AOP

NotaChtholly的博客 284

18_Spring 注解声明式事务管理

配置过程 1、在 spring 配置文件配置事务管理器 <!-- 数据库连接池 --> <bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource" destroy-method="close"> <property name="url" value="jdbc:mysql:///user_db" /> <property name="username" valu

多回头看一看 223

spring编程式事务管理

1, 一直以来, 在用Spring进行事物管理时, 只知道用声明式的策略, 即根据不同的数据源, 配置一个事物管理器(TransactionManager), 通过配置切面(PointCut)应用到相应的业务方法上或者直接在方法上加@Ttransactional注解.   这种事务管理使用起来比较简单,但个人感觉灵活性欠缺了点.   2, 最近看公司项目代码, 发现有位同事在他的模块了用了另...

998

Java:基于注解的Spring使用【AOP容器】和事务管理

Java:基于注解的Spring使用【AOP容器】

Litt_White的博客 1167

【Spring】Spring中事务管理

介绍spring中事务管理相关知识,主要是声明式事务,编程式事务简单介绍一下

Decade0712的博客 783

18_Spring_事务管理注解方式

保证一个事务修改的数据提交后才能被另外一个事务读取,另外一个事务不能读取该事务未提交的数据。这种事务隔离级别可以避免脏读出现,但是可能会出现不可重复读和幻像读。它除了保证一个事务不能读取另一个事务未提交的数据外,还保证了不可重复读。这是事务最低的隔离级别,它允许另外一个事务可以看到这个事务未提交的数据。无论add是否有事务,都建立一个新的事务,所有的方法都加入到新的事务中,add原来的事务就不用了。如果add方法没有事务,那么就新建一个事务,将addDept和addEmp加入到这个新的事务中。

wei7a7a7a的博客 166

18.Spring事务管理机制(事务处理交给spring的aop处理)

真正执行增删改查操作的方法是主要功能,在他们之前/之后开启事务,提交事务,回滚事务,把抽离出来的事务管理代码动态的植入到需要事务处理的service方法上 事务管理怎样做: 1.找到切入点,用aop专属标签提供的execution指明哪些方法需要被织入 2.创建事务代码(切面类),我们不需要写,正好是由spring提供,称为事务管理器 3.使用增强器advisor,是由spring提供,称为事务拦截器 1)编程式事务管理(不常用) 所谓编程式事务指的是通过编码方式实现事务。 2)声明式事务管理(常

weixin_44137201的博客 273

Spring初学之spring的事务管理注解

spring的事务管理,本文的例子是:比如你需要网购一本书,卖书的那一方有库存量以及书的价格,你有账户余额。回想我们在编程中要实现买书这样的功能,由于你的账户表和书的库存量表肯定不是同一张数据库表,所以必定会有一个先后,要么先将账户余额扣除书的价格,紧接着将书的库存量减一,要么反过来。那么问题来了,假如我们先将你的账户余额减掉,然后发现书的库存不足,这时怎么办呢,这就需要事务了,当我们发...

abyiy9580的博客 109
上一篇: Spring学习笔记(17)----使用Spring注解方式管理事务
下一篇: 经典的影评
coolszy
博客等级 码龄19年 2659粉丝 149原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值