
事务管理
无始无终123
。。。
展开
-
try catch异常抛出与spring事务回滚策略相关
将异常捕获,并且在catch块中不对事务做显式提交(或其他应该做的操作如关闭资源等)=生吞掉异常;spring的事务边界是在调用业务方法之前开始的,业务方法执行完毕之后来执行commit or rollback(Spring默认取决于是否抛出runtime异常). 如果抛出runtime exception 并在你的业务方法中没有catch到的话,事务会回滚。 一般不需要在转载 2017-01-13 11:26:02 · 11145 阅读 · 1 评论 -
spring几种事务配置
根据代理机制不同,有以下几种配置方式: 先定义一个DAO接口及实现类: Java代码 public interface IUserDao { public void insertUser(UserTable user); } 实现类: Java代码转载 2017-07-19 13:10:52 · 230 阅读 · 0 评论 -
【Spring】——事务的管理及实现
这篇文章主要介绍Spring中事务处理的方式及其实现。读完本文你会了解到 1.Spring事务管理方式有哪些 2.spring事务管理的具体实现 3.各种实现之间的比较 Spring事务处理的方式编程式事务管理*在实际应用中很少使用转载 2017-07-17 09:36:39 · 318 阅读 · 0 评论 -
java事务处理全解析(一)
最近学习java事务,看到一位前辈的系列博客不错,转载过来作为记录转载地址:http://www.davenkin.me/post/2013-02-16/40048284001 (一)Java事务处理的基本问题 (二)失败的案例 (三)丑陋的案例 (四)成功的案例(自己实现一个线程安全的TransactionManager)转载 2017-06-23 17:28:07 · 665 阅读 · 0 评论 -
Java事务处理全解析(二)—— 失败的案例
在本系列的上一篇文章中,我们讲到了Java事务处理的基本问题,并且讲到了Service层和DAO层,在本篇文章中,我们将以BankService为例学习一个事务处理失败的案例。 请通过以下方式下载github源代码:git clone https://github.com/davenkin/java_transaction_workshop.git Bank转载 2017-06-23 17:29:33 · 254 阅读 · 0 评论 -
Java事务处理全解析(三)—— 丑陋的案例
在本系列的上一篇文章中,我们看到了一个典型的事务处理失败的案例,其主要原因在于,service层和各个DAO所使用的Connection是不一样的,而JDBC中事务处理的作用对象正是Connection对象,所以不同DAO中的操作不在同一个事务里面,从而导致事务失败。从中我们得出了教训:要避免这种失败,我们可以使所有操作共享一个Connection对象,这样应该就没有问题了。 请通转载 2017-06-23 17:30:32 · 343 阅读 · 0 评论 -
Java事务处理全解析(四)—— 成功的案例(自己实现一个线程安全的TransactionManager)
在本系列的上一篇文章中我们讲到,要实现在同一个事务中使用相同的Connection对象,我们可以通过传递Connection对象的方式达到共享的目的,但是这种做法是丑陋的。在本篇文章中,我们将引入另外一种机制(ConnectionHolder)来完成事务管理。 这是一个关于Java事务处理的系列文章,请通过以下方式下载github源代码:git clone https://转载 2017-06-23 17:31:25 · 607 阅读 · 0 评论 -
Java事务处理全解析(五)—— Template模式
在本系列的上一篇文章中,我们讲到了使用TransactionManger和ConnectionHolder完成线程安全的事务管理,在本篇中,我们将在此基础上引入Template模式进行事务管理。 这是一个关于Java事务处理的系列文章,请通过以下方式下载github源代码:git clone https://github.com/davenkin/java_transact转载 2017-06-23 17:34:01 · 235 阅读 · 0 评论 -
Java事务处理全解析(六)—— 使用动态代理(Dynamic Proxy)完成事务
在本系列的上一篇文章中,我们讲到了使用Template模式进行事务管理,这固然是一种很好的方法,但是不那么完美的地方在于我们依然需要在service层中编写和事务处理相关的代码,即我们需要在service层中声明一个TransactionTemplate。在本篇文章中,我们将使用Java提供的动态代理(Dynamic Proxy)功能来完成事务处理,你将看到无论是在service层还是DAO层转载 2017-06-23 17:34:43 · 730 阅读 · 0 评论 -
Java事务处理全解析(七)—— 像Spring一样使用Transactional注解(Annotation)
在本系列的上一篇文章中,我们讲到了使用动态代理的方式完成事务处理,这种方式将service层的所有public方法都加入到事务中,这显然不是我们需要的,需要代理的只是那些需要操作数据库的方法。在本篇中,我们将讲到如何使用Java注解(Annotation)来标记需要事务处理的方法。 这是一个关于Java事务处理的系列文章,请通过以下方式下载github源代码:git clo转载 2017-06-23 17:35:27 · 601 阅读 · 0 评论 -
Java事务处理全解析(八)——分布式事务入门例子(Spring+JTA+Atomikos+Hibernate+JMS)
在本系列先前的文章中,我们主要讲解了JDBC对本地事务的处理,本篇文章将讲到一个分布式事务的例子。 请通过以下方式下载github源代码:git clone https://github.com/davenkin/jta-atomikos-hibernate-activemq.git 本地事务和分布式事务的区别在于:本地事务只用于处理单一数据源事务(比如单个数据转载 2017-06-23 17:36:31 · 436 阅读 · 0 评论 -
Spring中@Transactional事务回滚(含实例详细讲解,附源码)
一、使用场景举例在了解@Transactional怎么用之前我们必须要先知道@Transactional有什么用。下面举个栗子:比如一个部门里面有很多成员,这两者分别保存在部门表和成员表里面,在删除某个部门的时候,假设我们默认删除对应的成员。但是在执行的时候可能会出现这种情况,我们先删除部门,再删除成员,但是部门删除成功了,删除成员的时候出异常了。这时候我们希望如果成员删除失败了,之前删除转载 2017-01-13 11:41:25 · 355 阅读 · 0 评论 -
什么是事务、事务特性、事务隔离级别、spring事务传播特性
1.什么是事务:事务是程序中一系列严密的操作,所有操作执行必须成功完成,否则在每个操作所做的更改将会被撤销,这也是事务的原子性(要么成功,要么失败)。2.事务特性:事务特性分为四个:原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)、持续性(Durability)简称ACID。原子性(Atomicity):事务是数据库逻辑工转载 2017-07-25 10:08:42 · 471 阅读 · 0 评论