Spring的事务管理

事务概念

1 什么事务

事务是操作中最基本的单元,表示一组操作要么都成功,有一个失败那么所有都失败。

2 事务特性

原子性 一致性 隔离性 持久性

3 不考虑隔离性产生读问题

隔离性:多个事务之间没有影响

(1)脏读

(2)不可重复读

(3)虚读

4 解决读问题

(1)设置隔离级别

Spring事务管理api

在学hibernate时要写很多行代码实现,创建sessionfactory session 开启提交回滚事务。要自己写代码操作事务,等用到spring后事务的代码就不用我们写了,交给spring通过配置来完成

1 spring事务管理两种方式

第一种 编程式事务管理(不用)

第二种 声明式事务管理

(1) 基于xml配置文件实现

(2) 基于注解实现

2 spring事务管理的api介绍

(1)spring针对不同的dao层框架,提供接口不同的实现类

(2)首先 配置事务管理器

事务管理器有接口有实现类,创建该类对象,用bean id配置即可

搭建转账环境

1 创建数据库表account,添加数据

2 创建service和dao类,完成注入关系

在bean.xml中引入约束,并在项目中导入aop tx等包

(1)service层又叫业务逻辑层

(2)dao层,单纯对数据库操作层,在dao层不添加业务

(3)需求:小王 转账 1000 给 小马

- 小王少1000

- 小马多1000

OrderDao.java

OrdersService.java

3 产生问题:

(1)如果小王少了1000之后,出现异常,小马不会多1000,钱丢失了

4 解决:

(1)添加事务解决,出现异常进行回滚操作

声明式事务管理(xml配置)

1 配置文件方式使用aop思想配置

第一步 配置事务管理器,指定对那个数据库进行操作

第二步 配置事务增强

第三步 配置切面

声明式事务管理(注解)

第一步 配置事务管理器

第二步 配置事务注解

第三步 在要使用事务的方法所在类上面添加注解

Spring_day03--Spring的事务管理的更多相关文章

  1. Spring的事务管理

    事务 事务:是逻辑上一组操作,要么全都成功,要么全都失败. 事务特性(ACID) 原子性:事务不可分割 一致性:事务执行的前后,数据完整性保持一致 隔离性:一个事务执行的时候,不应该受到其他事务的打扰 ...

  2. spring笔记--事务管理之声明式事务

    事务简介: 事务管理是企业级应用开发中必不可少的技术,主要用来确保数据的完整性和一致性, 事务:就是一系列动作,它们被当作一个独立的工作单元,这些动作要么全部完成,要么全部不起作用. Spring中使 ...

  3. Spring应用——事务管理

    事务基础:请参看:http://www.cnblogs.com/solverpeng/p/5720306.html 一.Spring 事务管理 1.前提:事务管理器 在使用 Spring 声明式事务管 ...

  4. spring+mybatis事务管理

    spring+mybatis事务管理 最近在和朋友做一个项目,考虑用springmvc+mybatis来做,之前在公司工作吧,对于数据库这块的配置也有人再弄,最近因为这个项目,我就上网学习了一些关于数 ...

  5. spring,mybatis事务管理配置与@Transactional注解使用[转]

    spring,mybatis事务管理配置与@Transactional注解使用[转] spring,mybatis事务管理配置与@Transactional注解使用 概述事务管理对于企业应用来说是至关 ...

  6. Spring高级事务管理难点剖析

    1Spring事务传播行为 所谓事务传播行为就是多个事务方法相互调用时,事务如何在这些方法间传播.Spring支持7种事务传播行为 PROPAGATION_REQUIRED(加入已有事务) 如果当前没 ...

  7. CSDN上看到的一篇有关Spring JDBC事务管理的文章(内容比较全) (转)

    JDBC事务管理 Spring提供编程式的事务管理(Programmatic transaction manage- ment)与声明式的事务管理(Declarative transaction ma ...

  8. Spring之事务管理

        事务管理对于企业应用至关重要.它保证了用户的每一次操作都是可靠的,即便出现了异常的访问情况,也不至于破坏后台数据的完整性.     就像银行的自助取款机,通常都能正常为客户服务,但是也难免遇到 ...

  9. Mybatis整合Spring实现事务管理的源码分析

    一:前言 没有完整看完,但是看到了一些关键的地方,这里做个记录,过程会有点乱,以后逐渐补充最终归档为完整流程:相信看过框架源码的都知道过程中无法完全确定是怎样的流程,毕竟不可能全部都去测试一遍 ,但是 ...

  10. Hibernate与Spring的事务管理

    什么是事务 这个问题比较大,按照我的理解就是,一个事务内的n个操作,要么全部完成,一旦有一个操作有问题,那么所有的操作都全部回滚. Jdbc的事务 首先,大家已经知道了,事务说白了就是一个词----统 ...

随机推荐

  1. 【CI3.1】CI框架简单使用方法

    CI框架简单使用方法 1.回忆MVC 1.1.M:模型,提供数据,保存数据 1.2.V:视图,只负责显示,表单form 1.3.C:控制器,协调模型和视图 1.4.action:动作,是控制器中的方法 ...

  2. UML基础——统一建模语言简介

    到了21世纪——准确地说是2003年,UML已经获得了业界的认同.在我所见过的专业人员的简历中,75%都声称具备UML的知识.然而,在同绝大多数求职人员面谈之后,可以明显地看出他们并不真正了解UML. ...

  3. thinkphp 重写

    我们知道,在thinkphp的案例中有一个.htaccess文件,里面配置了URL的一些重写规则,如: <IfModule mod_rewrite.c>  RewriteEngine on ...

  4. PostgreSQL远端访问

    PostgreSQL默认的理念是运行在本地地址且不允许外部访问的. 如果想通过Navicat for postgreSql这种优秀的第三方软件访问需要做出如下修改: 一.启动在外部可访问的地址上 编辑 ...

  5. ubuntu下载软件安装包

    apt-get -d download xxx ubuntu下载软件安装包命令.仅仅下载deb格式的安装包,不安装. xxx是待下载的安装包.

  6. Locust分布式负载测试工具入门

    忽略元数据末尾 回到原数据开始处 Locust简介 Locust是一个简单易用的分布式负载测试工具,主要用来对网站进行负载压力测试. 以下是github上的仓库地址 https://github.co ...

  7. [转]sql:除非另外还指定了 TOP 或 FOR XML,否则,ORDER BY 子句在视图、内联函数、派生表、子查询

    执行sql语句: select * from ( select * from tab where ID>20 order by userID desc ) as a order by date ...

  8. [Jobdu] 题目1377:缓变序列

    题目描述: 陈博在写论文时碰到一个难题:如何将给定的整数序列变换成缓变序列:即任意两个相邻的元素相差均为1,第1个元素和最后一个元素相差也为1. 变换是指改变原整数序列中各元素的顺序.例如整数序列1, ...

  9. Atitit.注解and属性解析(2)---------语法分析 生成AST attilax总结 java .net

    Atitit.注解and属性解析(2)---------语法分析 生成AST  attilax总结  java .net 1. 应用场景:::因为要使用ui化的注解 1 2. 使用解释器方式来实现生成 ...

  10. 关于release后retainCount还是1的问题

    转自:http://www.cocoachina.com/bbs/read.php?tid=175523 realse之后再调用还能调用的的问题,我做了这么多年也是经常遇到,也曾经试图寻找原因, 就像 ...