[一]spring事务管理(1)spring的事务管理,是基于aop动态代理实现的.对目标对象生成代理对象,加入事务管理的核心拦截器==>org.springframework.transaction.interceptor.TransactionInterceptor.===>spring事务管理的核心拦截器===>需要配置的数据项:事务管理机制配置属性的查找类transactionAttributeSource,事务管理的核心处理器PlatformTransactionManager…
一.对事务的支持 事务:是一组原子操作的工作单元,要么全部成功,要么全部失败 Spring管理事务方式: JDBC编程事务管理:--可以控制到代码中的行 可以清楚的控制事务的边界,事务控制粒度化细(编程的方式) JDBC声明事务管理---可以控制到方法 事务相关API不用介入程序之中,将事务管理与实际业务代码解耦合(配置XML的方式) 二.JDBC编程事务管理 Spring提供两种方式实现编程式的事务管理: 实现PlatformTransactionManager接口 使用Transaction…
一.事务简介: 二.编程式事务管理: 例子 1.需求:模拟转账,张三向李四转账50元: 数据库中存在t_count表: 代码实现: BankDao.java: package com.cy.dao; public interface BankDao { //转入money元 public void inMoney(int money,int userId); //转出money元 public void outMoney(int money,int userId); } BankDaoImpl.…
一.自动装配: Model类: People.java: package com.cy.entity; public class People { private int id; private String name; private int age; private Dog dog; public int getId() { return id; } public void setId(int id) { this.id = id; } public String getName() { r…
一.AOP简介: 二.AOP实例: 三.使用的例子 需求:在student添加的前后,打印日志信息: 0)spring AOP需要引用的jar包: 1)StudentService.java接口: package com.cy.service; public interface StudentService { public void addStudent(String name); } 2)StudentServiceImpl.java实现类: package com.cy.service.i…
第一节: 工程结构: 1)student.java: package com.cy.model; public class Student { private int id; private String name; private int age; public Student() { super(); // TODO Auto-generated constructor stub } public Student(String name, int age) { super(); this.n…
在前面搭建的基础上,引入新的jar包如下: aopalliance-1.0.jaraspectjweaver-1.8.8.jarmybatis-3.3.0.jarmybatis-spring-1.2.3.jarmysql-connector-java-5.1.31.jarspring-aop-4.2.4.RELEASE.jarspring-aspects-4.2.4.RELEASE.jarspring-jdbc-4.2.4.RELEASE.jarspring-orm-4.2.4.RELEASE.…
一.bean之间的关系: 1)继承: People.java实体类: package com.cy.entity; public class People { private int id; private String name; private int age; private String className; public int getId() { return id; } public void setId(int id) { this.id = id; } public Strin…
People.java  model类: package com.cy.entity; import java.util.ArrayList; import java.util.HashMap; import java.util.HashSet; import java.util.List; import java.util.Map; import java.util.Properties; import java.util.Set; public class People { private…
一.装配一个bean 二.依赖注入的几种方式 com.cy.entity   People.java: package com.cy.entity; public class People { private int id; private String name; private int age; public People() { super(); // TODO Auto-generated constructor stub } public People(int id, String n…
HelloWorld.java: package com.cy.test; public class HelloWorld { public void say(){ System.out.println("hello Spring 你好"); } } Test.java: package com.cy.service; import org.springframework.context.ApplicationContext; import org.springframework.co…
一.抽象概念 1.事务管理器 接口:org.springframework.transaction.PlatformTransactionManager 实现类:org.springframework.jdbc.datasource.DataSourceTransactionManager 2.事务定义和配置 事务定义接口:org.springframework.transaction.TransactionDefinition 事务配置接口:org.springframework.transa…
第一节:事务简介 满足一下四个条件: 第一:原子性: 第二:一致性: 第三:隔离性: 第四:持久性: ------------------------------------------------- 首先我们认识一下我们为什么需要支持事务,我们事务管理的支持我们的程序会出现什么问题. 例子: 创建数据库: CREATE TABLE `t_count` ( `id` int(11) NOT NULL AUTO_INCREMENT, `userId` int(11) DEFAULT NULL, `…
访问数据库基本是所有java web项目必备的,不论是oracle.mysql,或者是nosql,肯定需要和数据库打交道.一开始学java的时候,肯定是以jdbc为基础,如下: private static int insert(Student student) { String driver = "com.mysql.jdbc.Driver"; String url = "jdbc:mysql://localhost:3306/samp_db"; String u…
转: http://blog.csdn.net/it_man/article/details/5074371 Spring事务配置的五种方式 前段时间对Spring的事务配置做了比较深入的研究,在此之间对Spring的事务配置虽说也配置过,但是一直没有一个清楚的认识.通过这次的学习发觉Spring的事务配置只要把思路理清,还是比较好掌握的. 总结如下: Spring配置文件中关于事务配置总是由三个组成部分,分别是DataSource.TransactionManager和代理机制这三部分,无论哪…
JDBC事务管理 Spring提供编程式的事务管理(Programmatic transaction manage- ment)与声明式的事务管理(Declarative transaction management),为不同的事务实现提供了一致的编程模型,这节以JDBC事务为例,介绍Spring的事务管理. 5.3.1  Spring对事务的支持 事务是一组原子(Atomic)操作的工作单元,以数据库存取的实例来说,就是一组SQL指令,这一组SQL指令必须全部执行成功,若因为某个原因未全部执行…
全局事务 全局事务支持对多个事务性资源的操作,通常是关系型数据库和消息队列.应用服务器通过JTA管理全局性事务,API非常烦琐.UserTransaction通常需要从JNDI获取,意味着需要与JNDI绑定在一起,且JTA一般只在应用服务器可用,降低了应用代码的可重用性. 本地事务 本地事务面向具体的资源,例如与JDBC连接关联的事务.本地事务易于使用,但不能跨多个事务性资源.使用JDBC管理事务的代码不能在全局JTA事务中运行,因此不能确保跨多个资源的正确性.且本地事务侵入了编程模型. Spr…
1.Spring对JDBC的支持 DAO : Spring中对数据访问对象(DAO)的支持旨在简化Spring与数据访问技术的操作,使JDBC.Hibernate.JPA和JDO等采用统一的方式访问 Spring提供了@Repository注解,这一注解同样允许组件扫描来发现和配置自定义DAO而DAO的实现依赖于某个持久化源,比如一个基于JDBC的DAO需要一个数据源DataSource JdbcTemplate JdbcTemplate类是Spring对JDBC支持类库中的核心类JdbcTem…
新建项目 把之前项目src下的内容全部复制过来 pom.xml内复制过来 开始配置 新建一个config的包,然后再新建配置文件类SpringConfiguration @Configuration这个注解是可写可不写的. 这个类会做为字节码的参数传给ApplicationContext @ComponentScan配置要扫描的包 @Import 但是这个Import要导谁呢? 新建JdbcConfig类 这一就可以通过Import导入JdbcConfig这个类 xml里面扫描包的配置可以省略掉…
事务是什么? 事务:指单个逻辑操作单元的集合. 在操作数据库时(增删改),如果同时操作多次数据,我们从业务希望,要么全部成功,要么全部失败.这种情况称为事务处理. 例如:A转账给B. 第一步,扣除A君账号要转的金额. 第二步,增加B君账号的金额. 这两个步骤,要么都成功,要么都失败,这就是事务. Spring事务控制我们要明确的 1.JavaEE体系进行分层开发,事务处理位于业务层,所以,一般情况下我们使用的事务代理(事务管理器)一般放在分层设计的业务层. 2.spring框架为我们提供了一组事…
前面一篇博文讲解了什么是AOP.学会了写AOP的实现,但是并没有实际运用起来,这一篇博文就算是对AOP技术应用的进阶把,重点是事务的处理. --wh 一.jdbcTemplate 什么是JdbcTemplate? spring提供用于操作数据库模版,类似Dbutils,通俗点讲,我们操作数据库,spring也会帮我们提供一个操作数据库的工具供我们使用,而不用我们自己手动编写连接数据库,获取结果集等等操作,这个工具就是JdbcTemplate.跟Dbutils一样,想要使用JdbcTemplate…
一.引言 上一篇文章,学习了AOP相关知识,并做了一个简单的Hello world.本文在上篇文章的基础上,进一步学习下Spring的声明式事务. 二.相关概念 1. 事务(Transaction)——它是一个操作序列,这些操作要么都执行,要么都不执行,它是一个不可分割的工作单位 2. 事务的几大特性(A.C.I.D): A——Atomicity(原子性).数据库中的事务执行是作为原子.即不可再分,整个语句要么执行,要么不执行. C——Consistency(一致性).在事务开始之前和事务结束以…
一.Spring事务管理的特点 Spring框架为事务管理提供一套统一的抽象,带来的好处有:1. 跨不同事务API的统一的编程模型,无论你使用的是jdbc.jta.jpa.hibernate.2. 支持声明式事务3. 简单的事务管理API4. 能与Spring的数据访问抽象层完美集成 说明:Spring的事物管理是用AOP实现的 二.事务概念学习 1. Isolation隔离级别 此事务与其他事务的工作隔离的程度.例如,该事务能否看到来自其他事务的未提交的写操作READ_UNCOMMITTED读…
Spring提供了一套管理项目中的事务的机制 以前写过一篇简单的介绍事务的随笔:http://www.cnblogs.com/xuyiqing/p/8430214.html 还有一篇Hibernate的事务管理:http://www.cnblogs.com/xuyiqing/p/8449167.html 可以做个对比 Spring管理事务特有的属性: 事务传播行为:事务传播行为(propagation behavior)指的就是当一个事务方法被另一个事务方法调用时,这个事务方法应该如何进行. 例…
事务 事务用来保证数据的完整性和一致性. 事务应该具有4个属性:原子性.一致性.隔离性.持久性.这四个属性通常称为ACID特性.1.原子性(atomicity).一个事务是一个不可分割的工作单位,事务中包括的诸操作要么都做,要么都不做.2.一致性(consistency).事务必须是使数据库从一个一致性状态变到另一个一致性状态.一致性与原子性是密切相关的.3.隔离性(isolation).一个事务的执行不能被其他事务干扰.即一个事务内部的操作对并发执行的各个事务之间不能互相干扰.4.持久性(du…
spring data项目是spring解决数据访问问题的一系列解决方案,包含了大量关系型数据库以及非关系型数据库的访问解决方案. 一.spring data jpa 1.简介 jpa是一套规范,不提供实现,由不同的软件提供商自行实现各自的功能.这样做的好处就是使用者只需要按照规范中定义的操作方式来使用,不需要具体软件厂商的实现方式. 在soring data jpa中,建立访问层非常简单,如下: 不过这种方式只能操作于单表以及一些最基本的crud. 在使用spring data jpa之前,项…
转载请注明原文地址:http://www.cnblogs.com/ygj0930/p/6776256.html  事务管理主要负责对持久化方法进行统一的提交或回滚,Spring进行事务管理即我们无需在代码中显式地书写事务的开启.提交.回滚等操作了,我们只需为Spring指明有哪些方法需要进行事务管理,Spring自动在运行时为那些方法进行事务管理.使用Spring进行事务管理的工作就在于,配置好事务管理器,以及在哪些方法进行管理即可. 一:Spring底层关于事务管理的API Spring封装了…
概念 1.事务 1)事务特性:ACID 原子性 :强调事务的不可分割. 一致性 :事务的执行的前后数据的完整性保持一致. 隔离性 :一个事务执行的过程中,不应该受到其他事务的干扰. 持久性 :事务一旦结束,数据就持久到数据库. 2)事务并发问题 脏读 :一个事务读到了另一个事务的未提交的数据. 不可重复读 :一个事务读到了另一个事务已经提交的 update 的数据导致多次查询结果不一致. 虚幻读 :一个事务读到了另一个事务已经提交的 insert 的数据导致多次查询结果不一致. 3)事务的隔离级…
转载:http://www.iteye.com/topic/1122740 1.预备知识 aop概念请参考[http://www.iteye.com/topic/1122401]和[http://jinnianshilongnian.iteye.com/blog/1418596] spring的事务管理,请参考[http://jinnianshilongnian.iteye.com/blog/1441271] 使用AOP 代理后的方法调用执行流程,如图所示 也就是说我们首先调用的是AOP代理对象…
我们在使用Spring时候一般都知道事务在遇到异常的时候会回滚.岂不知Spring的事务默认仅仅有在发生执行时异常即:RunTimeException时才会发生事务,假设一个方法抛出Exception或者Checked异常Spring的事务并不会回滚. 以下我们来看看异常的分类.异常一般分为Checked异常和RunTime异常. CheckedException: Java觉得Checked异常都是能够被处理的异常,所以Java程序必须显式的处理Checked异常,假设程序没有处理checke…