`
bluepopopo
  • 浏览: 91678 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

Java transaction笔记(一)

    博客分类:
  • J2EE
阅读更多
这两天闲来无事,从infoQ下载了javatransactionsbook.pdf看看。这本书写的还是蛮直白的,很多知识都比较常见,正好巩固一下自己并不扎实的基础。

事务(transaction)分三种类型

Local transaction model
只能用来操作connetion,不适用于transaction.譬如说,
conn = getConnection();
conn.setAutoCommit(false);
. . .
conn.commit()/rollback();

一般用于小型的应用,不足之处在于开发人员处理transaction时需要非常小心。还有一点就是无法加入到XA事务中去。

Programmatic transaction model
基本与前者相似,区别在于前者控制connection,后者使用transaction.
UserTransaction ut = getUserTransaction() ;// loop up JNDI
ut.begin();
ut.rollback()/commit();


一般用于BMT事务,当然也可用于client端控制多个业务方法,进而达到事务控制。

Declarative transaction model
比较常见的是EJB的CMT事务。

当然有一点需要注意的是对于application exception,需要手动的SessionContext。setRollbackOnly,否则的话容器不会回滚。还有一种做法是将application  exception包装成EJBException,这样的话也可以达到回滚的效果,只不过回传到client的exception比较冗长不直观。

按理说DDL是不能回滚的。我尝试过在SQLServer中可行,但是Oracle不能,奇怪?

补充一下一直比较混淆的概念:
- JTA
- JTS
   The relationship of JPA and JTS is similar as JDBC and JDBC driver.One is spec,another is implementation.

pdf继续阅读中
分享到:
评论

相关推荐

    Java学习笔记-个人整理的

    {12.15}Transaction}{177}{section.12.15} {12.16}char与varchar2}{178}{section.12.16} {12.17}number}{179}{section.12.17} {12.18}\ttfamily user\_tables, user\_objects}{179}{section.12.18} {12.19}...

    Oracle 10g 学习笔记

    │ Oracle Direct-Path Insert学习笔记 - NyThing的Java日记 - JavaEye技术网站.mht │ oracle 常用傻瓜1000问 - oracle10g - 小呵呵.mht │ oracle 常用傻瓜1000问 - oracle10g - 小呵呵.mht.lnk │ ORACLE 面试...

    java学习笔记之sql常用语句

     TCL(Transaction Control Language):用来对事务进行管理  数据库登录:  win+R运行cmd,输入 双引号里面的内容:"mysql -uroot -proot"回车,root为用户名和密码。  注意:执行win命令,后不需要加“;”,...

    MySQL学习笔记、学习文档

    Java处理高并发量访问的处理.txt Map集合的四种遍历方式.txt Mybatis查询某- -日、周、月数据.txt MySQL安装教程.txt MySQL查询最近-周、月每月、周统计数据.txt MySQL入Ar ]很简单学习笔记李国华.dox Oracle查看表...

    spring培训学习笔记

    Spring 是指一个用于构造Java 应用程序的轻量级框架,不限定于只编写web 应用,最少侵入。 Spring 的核心是个轻量级(Lightweight)的容器(Container),它是实现IoC(Inversion of Control)容器、非侵入性...

    java8集合源码分析-common-mistakes:常见错误

    java8 集合源码分析 《Java业务开发常见错误100例》 学习笔记 说明 该项目是学习 极客时间 该专栏的学习笔记 进度 代码篇 使用了并发工具类库,线程安全就高枕无忧了吗?:concurrenttool ...序列化:一来一

    Transaction-Categorize-Clients:MindSumo向第一资本挑战

    编写了五个Java类来解决该项目。 这些课程中的三个分别解决了三个问题(包括奖金问题)。 另外两个类是助手类。 这些类在下面说明。 用时间和空间复杂度O(n)可以解决这三个问题,其中n是订阅数。 运行笔记本电脑...

    技术笔记(第二部分整理)

    HTML5、CSS3、JavaScript、jQuery、Vue、Axios、Echars、Servlet、JSP、JSTL、EL、SpringMVC、Druid、Redis、MD5、Logback、Poi、FileUpload、Transaction

    oracle学习文档 笔记 全面 深刻 详细 通俗易懂 doc word格式 清晰 连接字符串

    oracle学习文档 笔记 全面 深刻 详细 通俗易懂 doc word格式 清晰 第一章 Oracle入门 一、 数据库概述 数据库(Database)是按照数据结构来组织、存储和管理数据的仓库,它产生于距今五十年前。简单来说是本身可视...

    Design-Patterns:笔记

    资工笔记 资料库 Transaction资料库的特性就是ACID Atomicity 不可分割性 Consistency 一致性 Isolation 独立性 Durability 持久性 CAP 资料库理论 Consistency 一致 Availability 可用 Partition Tolerance 中断...

    jedis使用指南

    具体事务和监听请参考文章:redis学习笔记之事务 暂时找到三种实现方式: 1. 通过jedis.setnx(key,value)实现 import java.util.Random; import org.apache.commons.pool.impl.GenericObjectPool.Config; import ...

    CS448-Project2

    :返回下一个元组,无论其位于哪个块中使用RecordPage获取块信息使用Transaction来控制缓冲区我们需要实现3个联接将N个块读入内存选项1:修改TableScan 选项2:创建一个新的TableBlockScan 读取一个块(或N个块)中...

    clip:剪辑练习的存储库

    date“:” 2018-12-30“,” user_id“:2}”笔记别忘了用双引号引起来。 进入请求的user_id将被忽略。 将使用作为参数传递的user_id注册该事务。-用于表演交易: ./application <user> <transaction>-对于列表横切...

Global site tag (gtag.js) - Google Analytics