spring+mybatis事务配置

原创 2016年08月28日 23:11:37

基于注解的spring的声明式事务配置:

<span style="white-space:pre">	</span><!-- 全注解Sping事务管理配置(@Transactional(rollbackFor = Exception.class)) -->
	<bean id="txManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
		<span style="color:#ff0000;"><property name="dataSource" ref="dataSource" /></span>
	</bean>
	<!--启动spring事物注解驱动-->
	<tx:annotation-driven transaction-manager="txManager"/>

<span style="white-space:pre">	</span><!-- MyBatis配置,只要org.mybatis.spring.SqlSessionFactoryBean引用的数据源与DataSourceTransactionManager引用的数据源一致即可(红色部分)-->
	<bean id="sqlSessionFactoryBean" class="com.kev.team.framework.dao.mybatis.SqlSessionFactoryBean">
		<span style="color:#ff0000;"><property name="dataSource" ref="dataSource" /></span>
		<property name="configLocation" value="classpath:mybatis/mybatis-config.xml" />
		<!-- 需要映射的包路径 -->
		<property name="typeAliasesPackage" value="com.kev.team.**" />
		<property name="mapperLocations">
			<list>
				<value>classpath:com/kev/team/**/*Mapper.xml</value>
			</list>
		</property>
	</bean>
<!-- 添加tx命名空间 -->
xmlns:tx="http://www.springframework.org/schema/tx" xmlns:aop="http://www.springframework.org/schema/aop" http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.0.xsd

使用实例:

@Transactional
	public void insertStyle(GoodsDetail goodsDetail) {
		Goods goods = goodsDao.selectByNo(goodsDetail.getGoodsNo());
		List<GoodsDetail> detail = goodsDao.getGoodsDetailByGoodsNo(goodsDetail.getGoodsNo());
		int flag = 0, flag1 = 0;
		String goodsStyleIds = goods.getGoodsStyleIds();
		if (goodsStyleIds == null) {
			goods.setGoodsStyleIds(goodsDetail.getGoodsSizeId() + "," + goodsDetail.getGoodsColorId());
		} else {
			goods.setGoodsStyleIds(goodsStyleIds + "," + goodsDetail.getGoodsSizeId() + ","
					+ goodsDetail.getGoodsColorId());
		}
		int styleStock = goodsDetail.getGoodsStock();
		for (int i = 0; i < detail.size(); i++) {
			styleStock += detail.get(i).getGoodsStock();
		}
		if (goods.getGoodsstock() >= styleStock) {
			flag = goodsDao.insertStyle(goodsDetail);
			flag1 = goodsDao.updateByPrimaryKey(goods);
			if ((flag + flag1) != 2) {
				throw new RuntimeException("事务发生回滚,请检查颜色尺码数据是否正确!!");
			}
		} else {
			throw new RuntimeException("库存不足,请调整数量!!");
		}
	}

添加@Transactional注解的方法,相当于在方法开始前添加事务开始代码,在方法结束后添加事务结束代码,

所以该方法必须抛出异常到方法结束处,事务才会回滚。

异常可以在方法调用处try catch,以得到程序需要的适当返回。




spring+mybatis 事务 配置与使用

一. springmvc注解事务之前一直有用事务,但是之前都只算使用。今天有才有空深入了解一下事务的配置使用。本人比较懒(哈哈哈),就先从懒人比较中意的注解事务开始吧。怕有新手上路,所以spring....
  • zmq52007
  • zmq52007
  • 2018年01月18日 17:24
  • 55

常用的两种spring、mybatis 配置方式

在之前的文章中总结了三种方式,但是有两种是注解sql的,这种方式比较混乱所以大家不怎么使用,下面总结一下常用的两种总结方式: 一、 动态代理实现 不用写dao的实现类 这种方式比较简单,不用实现dao...
  • QH_JAVA
  • QH_JAVA
  • 2016年06月07日 08:47
  • 30280

springmvc mybatis 事务管理不生效原因

spring-mvc事务配置如下 expression="execution(* com.*.serv...
  • u013969040
  • u013969040
  • 2017年02月17日 16:50
  • 1488

spring+mybatis事务管理(声明式+编码式)

spring事务 声明式+编码式
  • bing709
  • bing709
  • 2016年03月03日 19:25
  • 1218

Spring+Mybatis多数据源配置(四)——AbstractRoutingDataSource实现数据源动态切换

有时候需要在程序中动态切换数据源,那么这个系列的之前的博文所阐述的方法就不再使用了,总不能通过程序更改config.properties文件的dataSource的值,然后再重启web服务器以便加载a...
  • u013256816
  • u013256816
  • 2015年11月20日 17:26
  • 9408

spring+mybatis使用事务管理不生效原因分析

spring+mybatis使用事务管理不生效原因 检查spring的配置信息是否配置正确 ...
  • lzc4869
  • lzc4869
  • 2016年03月24日 19:50
  • 455

Spring+Mybatis 手动控制事务

@Override    public boolean testDelete(String jobCode) throws Exception {       boolean flag = fa...
  • Yunwei_Zheng
  • Yunwei_Zheng
  • 2017年03月19日 22:50
  • 1542

Spring+Mybatis配置

Mybatis: mybatis是支持普通 SQL查询,存储过程和高级映射的优秀持久层框架。MyBatis 消除了几乎所有的JDBC代码和参数的手工设置以及 结果集的检索。MyBatis 使用简单...
  • hezuohuoban882
  • hezuohuoban882
  • 2017年07月10日 13:56
  • 181

Spring+mybatis配置

此配置后,DAO可以不用写实现代码 第一步:applicationContext.xml配置 ...
  • wangzhongfeng1112
  • wangzhongfeng1112
  • 2012年10月31日 11:47
  • 2563

spring+mybatis 事务之如何在service层配置事务

如何在service层配置事务 关键是事实上,dao层只是简单的增删改查,而实际业务的一个接口肯定不止一个增删改查的一个,有可能是调A接口的删除,在调B接口的添加。这个时候前面那个配置只能保证A接口成...
  • xiaojiahao_kevin
  • xiaojiahao_kevin
  • 2016年09月20日 22:05
  • 3581
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:spring+mybatis事务配置
举报原因:
原因补充:

(最多只允许输入30个字)