`
silentJesse
  • 浏览: 107785 次
  • 性别: Icon_minigender_1
  • 来自: 福建厦门
社区版块
存档分类
最新评论

Java事务处理小结,以及并发问题,hibernate的锁机制

阅读更多
转载自http://blog.csdn.net/rick100/archive/2006/02/26/610633.aspx
典型的数据库jdbc中的事务处理: ACID (原子性、一致性、孤立性和持久性);
在进行数据库”锁”操作时可以选择不同的事务分离水平:
1>.READ UNCOMMITTED 效率高,但可能会有脏数据(修改数据时不排他读);
2>.READ COMMITTED 避免了脏数据(修改数据时排他读);
3>. REPEATABLE READ 对满足条件的数据行集进行锁定;
4>.SERIALABLE READ 最高级别,禁止插入;

两种重要的事务类型:JDBC 事务,JTA 事务 :
1>.JDBC 事务受数据库的事务管理器控制。在会话 Bean 内包含原有代码时,可能需要使用 JDBC 事务。 要对某个 JDBC 事务进行编码,您调用 java.sql.Connection 接口的提交和回滚方法。事务开头不明确。事务以遵循最近提交、回滚或连接语句的第一个 SQL 语句开头。(此规则通常是准确的,但可能会随数据库供应商的不同而有所变化。)
2>.JTA 事务允许您在不受事务管理器实施的情况下划分事务。J2EE SDK 利用 JTS 实施事务管理器。但您的代码不直接调用 JTS 方法,而是调用 JTA 方法,JTA 方法然后调用低级 JTS 例程。

JTA 事务受 J2EE 事务管理器控制。您可能需要使用一个 JTA 事务,因为 JTA 事务可以把更新分发到多个来自不同供应商的数据库。某个数据库的事务管理器可能无法与异类数据库工作。

两种常用的事务处理模型: FLAT 和NESTED(嵌套式事务),J2EE1.4目前只支持FLAT; Java程序中用于事务处理的API: JTA 在java中,JTA事务处理的编程起源于OMG(COBRA)的OTS(Object Transcation Service)标准,Sun公司对OTS进行java实现:JTS,JTS供系统级程序员使用,而进行组件开发的程序员应该关心的是上层的API:JTA,用的比较频繁的是JTA中的javax.transaction.UserTransaction接口。

在java中,可以实施3种事务处理控制: 1>.程序Bean控制 2>.容器控制 3>.客户端控制:
程序Bean控制灵活但比较复杂;
容器控制是在容器的部署文件中进行定义,比较简单;
客户端控制的方法用的比较少,也相对复杂些,能保证网络连接出问题时客户端也能得到正确的事务信息。

在EJB中,Entity Bean只能使用容器控制的事务处理,因为其依赖ejbLoad()->商业方法()->ejbStore()方法完成数据处理;
在Bean部署文件中声明事务的属性:
1>.Required 指明该bean必须运行在事务中,没有现成的就新建一个; 2>.RequiresNew 指明每次运行都新建一个事务;
3>.Supports 指明该bean如目前正处于事务中的话就加入到事务中去,没有就算了; 4>.Mandatory 指明运行该bean时必须有一个事务正在运行让其加入,否则抛出异常; 5>.NotSupported 指明该bean不会运行于任何事务中;
6>.Never 指明该bean不但不会运行于任何事务中, 而且还会抛出异常。

本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/rick100/archive/2006/02/26/610633.aspx

并发问题请参看http://www.blogjava.net/fengzhanke/archive/2010/12/17/341035.html

hibernate的锁机制
http://www.360doc.com/content/07/0327/10/11192_415808.shtml
分享到:
评论

相关推荐

    精通 Hibernate:Java 对象持久化技术详解(第2版).part2

     9.3 Hibernate的事件处理机制  9.4 批量处理数据  9.4.1 通过Session来进行批量操作  9.4.2 通过StatelessSession来进行批量操作  9.4.3 通过HQL来进行批量操作  9.4.4 直接通过JDBC API来进行批量操作  9.5...

    精通 Hibernate:Java 对象持久化技术详解(第2版).part4

     9.3 Hibernate的事件处理机制  9.4 批量处理数据  9.4.1 通过Session来进行批量操作  9.4.2 通过StatelessSession来进行批量操作  9.4.3 通过HQL来进行批量操作  9.4.4 直接通过JDBC API来进行批量操作  9.5...

    精通 Hibernate:Java 对象持久化技术详解(第2版).part3

     9.3 Hibernate的事件处理机制  9.4 批量处理数据  9.4.1 通过Session来进行批量操作  9.4.2 通过StatelessSession来进行批量操作  9.4.3 通过HQL来进行批量操作  9.4.4 直接通过JDBC API来进行批量操作  9.5...

    精通 Hibernate:Java 对象持久化技术详解(第2版).part1.rar

     9.3 Hibernate的事件处理机制  9.4 批量处理数据  9.4.1 通过Session来进行批量操作  9.4.2 通过StatelessSession来进行批量操作  9.4.3 通过HQL来进行批量操作  9.4.4 直接通过JDBC API来进行批量操作  9.5...

    Hibernate实战(第2版 中文高清版)

     1.5 小结   第2章 启动项目   2.1 启动Hibernate项目   2.1.1 选择开发过程   2.1.2 建立项目   2.1.3 Hibernate配置和启动   2.1.4 运行和测试应用程序   2.2 启动Java Persistence项目   2.2.1 ...

    Java Web程序设计教程

    10.1.2hibernate中的事务处理 209 10.1.3在hibernate中使用jta事务 210 10.1.4并发控制 211 10.2hibernate缓存 213 10.2.1缓存的工作原理 213 10.2.2应用一级缓存 214 10.2.3应用二级缓存 214 10.2.4应用第三...

    java web开发心得

    此外,理解数据库设计原则,如范式理论、索引优化、事务处理和并发控制,将有助于构建高效、稳定的数据存储系统。 在实际开发中,这些技术往往相互交织,共同构建出完整的Java Web应用程序。不断学习和实践,加深对...

    JAVA面试题总汇:j2ee面试知识.pdf

    - **多线程和并发:** Java的线程创建方式、同步机制、线程池的使用,以及并发编程中常见的问题如死锁、活锁的处理。 #### 2. Java高级特性 - **泛型:** 泛型类、接口、方法的定义和使用,类型擦除和泛型通配符的...

    Spring.3.x企业应用开发实战(完整版).part2

    1.8 小结 第2章 快速入门 2.1 实例功能概述 2.1.1 比Hello World更适用的实例 2.1.2 实例功能简介 2.2 环境准备 2.2.1 创建库表 2.2.2 建立工程 2.2.3 类包及Spring配置文件规划 2.3 持久层 2.3.1 建立领域对象 ...

    Spring3.x企业应用开发实战(完整版) part1

    1.8 小结 第2章 快速入门 2.1 实例功能概述 2.1.1 比Hello World更适用的实例 2.1.2 实例功能简介 2.2 环境准备 2.2.1 创建库表 2.2.2 建立工程 2.2.3 类包及Spring配置文件规划 2.3 持久层 2.3.1 建立领域对象 ...

    Spring攻略(第二版 中文高清版).part2

    1.15 小结 56 第2章 高级Spring IoC容器 57 2.1 调用静态工厂方法创建Bean 57 2.1.1 问题 57 2.1.2 解决方案 57 2.1.3 工作原理 57 2.2 调用一个实例工厂方法创建Bean 58 2.2.1 问题 58 2.2.2 ...

    Spring攻略(第二版 中文高清版).part1

    1.15 小结 56 第2章 高级Spring IoC容器 57 2.1 调用静态工厂方法创建Bean 57 2.1.1 问题 57 2.1.2 解决方案 57 2.1.3 工作原理 57 2.2 调用一个实例工厂方法创建Bean 58 2.2.1 问题 58 2.2.2 ...

    java学生信息管理系统.doc

    8. **实验小结**:项目结束时,开发者会总结经验教训,对系统进行评估,提出改进意见,以便于后续的迭代升级。 综上所述,Java学生信息管理系统是一个综合运用多种IT技术的实践项目,涵盖了从需求分析到系统实现的...

    鲁棒的数据库持久层设计

    - 处理并发访问时,需要考虑如何有效地利用锁机制,防止数据冲突。 - 对象锁和行级锁可以帮助解决并发问题,但需要谨慎使用以避免死锁。 3. **开发语言的问题** - 不同的编程语言对于持久层的支持程度不同,需要...

    iBATIS实战

    1.5 小结 24 第2章 iBATIS是什么 26 2.1 映射SQL语句 27 2.2 iBATIS如何工作 29 2.2.1 iBATIS之于小型、简单系统 30 2.2.2 iBATIS之于大型、企业级系统 31 2.3 为何使用iBATIS 31 2.3.1 简单性 32 2.3.2 生产效率 ...

    006-基于SSH的教学管理系统的设计和实现

    - 小结:总结设计经验,评估系统性能,提出改进意见。 7. 课程设计要求: 学生需按时参与课程设计,独立完成任务,指导教师会定期验收阶段成果。最后,学生需提交完整的设计报告书和课程设计成果。 参考资料涉及的...

    基于springboot的迷你天猫商城设计与实现 .docx

    #### 本章小结 本章节从技术角度出发,详细介绍了迷你天猫商城项目的背景、技术选型、需求分析及业务流程设计等方面的内容。通过这些准备工作,为后续的实际开发奠定了坚实的基础。接下来,我们将深入探讨系统的...

Global site tag (gtag.js) - Google Analytics