打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
Spring中使用DataSourceTransactionManager进行事务管理的xml配置

在一个业务的实现过程中,可能需要多条sql完成对数据库的操作,比如账户登录,需要匹配用户名和密码,然后要增加积分,还要记录登录的ip和时间,这可能需要三个sql语句,这三个语句应当是一个整体,任意一个sql执行不成功,都表示这个业务没有执行完成,这就有了事务的概念。

事务是数据库中的概念,就是对数据库的一组操作,由一条或多条sql组成。

事务具有同步的特点,一条sql执行失败,其他sql都不会执行,即要么都执行,要么都不执行。

START TRANSACTION开启一个事务,这之后执行的sql语句,在用COMMIT提交事务之前,都没有被"写死"到数据库中,可以用ROLLBACK进行回滚操作。

Spring在jdbc中提供了一个事务管理组件:org.springframework.jdbc.datasource.DataSourceTransactionManager

<!-- 配置事务管理组件 --><bean id="txManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">    <property name="dataSource" ref="dbcp">  <!-- dbcp是连接池组件(org.apache.commons.dbcp2.BasicDataSource)的bean --></bean>

使用事务管理的功能,跟创建bean一样,可以采用注解和xml配置两种方式。当然可能还有别的方式,还没学到

<!-- 采用注解方式:有源码的情况下,将注解加在方法上 --><!-- 开启事务注解标记@Transactional,当调用带@Transactional标记的方法时,将txManager的事务管理功能切入进去 --><tx:annotation-driven transactional-manager="txManager" /><!-- 在需要事务管理的方法上加上@Transactional注解即可 -->
<!-- 采用xml配置的方式:使用别人写好的功能,没有源码,就可以用xml配置 --><tx:advice id="txAdvice" transaction-manager="txManager" >   <!-- 仍然使用txManager作为事务管理组件 -->    <tx:attributes>        <tx:method name="updateTitleAndBody" />   <!-- 在哪些方法上添加事务管理 -->        <tx:method name="register" />             <!-- 这里写方法名 -->        <tx:method name="checkLogin" />           <!-- 支持通配符 -->        <tx:method name="listNotebook" />        <tx:method name="getDeletedNotes" />    </tx:attributes></tx:advice><!-- 通过aop机制完成事务管理 --><aop:config>                                      <!-- 作用在哪些组件上 -->    <aop:pointcut id="target" expression="within(net.sonng.note.service.UserServiceImpl)" />                                                  <!-- 这个expression的写法有讲究 -->    <aop:advisor advice-ref="txAdvice"  pointcut-ref="target"/> </aop:config>

其他:MyBatis应该也提供了事务管理的组件

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
Spring3.0中的事务控制的配置方法
SpringMVC、MyBatis宣言式事务管理
SpringMVC 手动控制事务提交
SpringBoot事务注解详解
spring声明式事务管理
Spring的事务管理--事务隔离级别
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服