SSM框架中事务用法详解

事务可从多种层面进行分类,数据库角度、java角度、编程角度。
1.数据库角度
本地事务 :普通事务,独立的一个数据库,保证在该数据库上操作的ACID。
分布式事务 :
2.Java角度
JDBC事务:普通事务,即数据库事务中的本地事务,通过connection对象控制管理。
JTA事务:JTA指Java事务API(Java Transaction API),是Java EE数据库事务规范, JTA只提供了事务管理接口,由应用程序服务器厂商(如WebSphere Application Server)提供实现,JTA事务比JDBC更强大,支持分布式事务(当然也支持本地事务)。
3.编程角度(Spring层面)
声明式事务:通过XML配置或者注解实现,更为简单
编程式事务:通过编程代码在业务逻辑时需要时自行实现,粒度更小。

**

重点说明声明式事务和编程式事务

**
1、声明式事务:声明式事务比较常用,需要在spring-mvc.xml配置文件中添加配置,开启事务注解驱动,需要在service实现类的方法上打一个@transactional注解。声明式事务可以获取运行时异常进行回滚操作,如果代码中进行try…catch则需要手动回滚。

<!-- 数据库连接信息 -->
<context:property-placeholder location="classpath:db.properties" />

<bean id="ds" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
	<property name="driverClassName" value="${jdbc.driver}" />
	<property name="url" value="${jdbc.url}" />
	<property name="username" value="${jdbc.name}" />
	<property name="password" value="${jdbc.pass}" />
</bean>

<bean  class="org.mybatis.spring.SqlSessionFactoryBean"><!-- 默认不要配置ID,spring能够找到 -->
	<property name="dataSource" ref="ds"/><!-- 连接数据库 -->
	<property name="configLocation" value="classpath:mybatis-config.xml"/><!-- 读取数据库配置文件的信息 -->
</bean>
<!-- 扫描接口 -->
<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
	<property name="basePackage" value="com.lq.user.dao" />
</bean>

<!-- 配置事务处理,声明式事务 -->
<bean id="tm" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
	<property name="dataSource" ref="ds"/>
</bean>
<!-- 开启注解事务,注解事务切面 -->
<tx:annotation-driven transaction-manager="tm" />  

2、编程式事务:很少用到
在这里插入图片描述

号外:
Springboot + mybatis 事务用法
1、启动类添加@EnableTransactionManagement //开启事务
2、业务层添加@Transactional

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值