码迷,mamicode.com
首页 > 编程语言 > 详细

Spring中的事物管理----HelloWorld

时间:2014-10-28 19:23:32      阅读:152      评论:0      收藏:0      [点我收藏+]

标签:style   blog   io   color   使用   sp   数据   div   on   

在学习Spring的事物管理之前明白先明白几个概念
1什么是事物:事务就是一系列的动作, 它们被当做一个单独的工作单元. 这些动作要么全部完成, 要么全部不起作用
     例子说明:例如银行转账,A账户转账(转200)到B账户,涉及的动作就是A账户余额减少200,B账户余额增加200,把这两个动作当成一个工作单元,要么两个动作一起完成,要么两个动作都不起用

2事物作用是什么:有四大特性,分别是:原子性(就是多个动作组成一个原子操作,要么一起完成,要么一起不起作用)
                        一致性(就是事物完成后,数据和资源保持一致性)
                    隔离性(可能有许多事务会同时处理相同的数据, 因此每个事物都应该与其他事务隔离开来, 防止数据损坏)
                    持久性(一旦事务完成, 无论发生什么系统错误, 它的结果都不应该受到影响. 通常情况下, 事务的结果被写到持久化存储器中)

Spring中的事物管理使用步骤:

* 使用事务来处理的步骤:
* 1先配置事务管理器(每个数据源Spring都有对应的事务管理器)(因为数据源管理器是管理数据源的,所以要添加数据源属性)

<bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
        <property name="dataSource" ref="dataSource"></property>
    </bean>

* 2启用事务注解

<!-- 启用事务注解 -->
    <tx:annotation-driven transaction-manager="transactionManager"/>

* 3在需要管理的方法前面使用@Transactional,这样就会把方法放入事务管理器,进行管理

@Transactional
    @Override
    public void purchase(String username, String isbn) {
        
        //1. 获取书的单价
        int price = bookShopDao.findBookPriceByIsbn(isbn);
        
        //2. 更新数的库存
        bookShopDao.updateBookStock(isbn);
        
        //3. 更新用户余额
        bookShopDao.updateUserAccount(username, price);
    }


* 4为什么在测试类中不能使用呢????

Spring中的事物管理----HelloWorld

标签:style   blog   io   color   使用   sp   数据   div   on   

原文地址:http://www.cnblogs.com/jeremy-blog/p/4057261.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!