数据库事务的定义
事务是指一组相互信赖的操作行为。这些操作要么必须全部成功,要么必须全部失败,以保证数据的一致性和完整性。
数据库事务是对现实生活中事务的模拟,它由一组在业务逻辑上相互信赖的SQL语句组成。
数据库事务的ACID属性
原子性(Atomic)
指整个数据库事务是不可分割的工作单元。原子性确保在事务中的所有操作要么都发生,要么都不发生。
一致性(Consistency)
一旦一个事务结束了(不管成功与否),系统所处的状态和它的业务规则是一致的。即数据应当不会被破坏。
隔离性(Isolation)
指多个事务同时操作同一数据时,每个事务都有各自的完整数据空间。
持久性(Durability)
一旦事务完成,事务的结果应该持久化。
JDBC声明事务
Connection con = null; PreparedStatement pstmt = null; try{ con = DriverManager.getConnection(dbUrl, username, password); //设置手工提交事务模式 con.setAutoCommit(false); pstmt = ……; pstmt.executeUpdate(); //提交事务 con.commit(); }catch(Exception e){ //事务回滚 con.rollback(); ….. } finally{ ……. }
Hibernate 事务
1、如果Hibernat持久层运行在一个非托管环境中,可以在hibernate配置文件 hibernate.cfg.xml中指定:
<session-factory> <property name="transaction.factory_class"> org.hibernate.transaction.JDBCTransactionFactory </property> </session-factory>
Transaction tx = null; try { tx = session.beginTransaction(); // do some work... tx.commit(); }catch (RuntimeException e) { if (tx != null) tx.rollback(); throw e; // or display error message }finally { session.close(); }
注:
-
不管事务成功与否,最后都应该调用Session的close()方法来关闭Session。
<session-factory> <property name="transaction.factory_class"> org.hibernate.transaction.JTATransactionFactory </property> </session-factory>
// BMT(bean管理事务) UserTransaction tx = null; try { tx = (UserTransaction)new InitialContext().lookup("java:comp/UserTransaction"); tx.begin(); // Do some work on Session bound to transaction factory.getCurrentSession().persist(...); tx.commit(); } catch (RuntimeException e) { tx.rollback(); throw e; // or display error message }
注:在CMT(容器管理事务)方式下,事务声明是在session bean的部署描述符中,而不需要编程。
相关推荐
### 详解Hibernate事务处理机制 #### 一、引言 Hibernate作为一款优秀的对象关系映射(ORM)框架,在Java开发领域扮演着极其重要的角色。它不仅简化了数据持久化的复杂性,还提供了一系列强大的功能来支持高效的...
【hibernate事务管理机制】是指在使用Hibernate框架进行数据库操作时,如何管理和协调事务的一系列规则和策略。事务管理是确保数据一致性、完整性和并发控制的重要机制。 **悲观锁**是预防性的锁定策略,它假设并发...
本文将深入探讨Spring与Hibernate整合时的事务管理,帮助你更好地理解和运用这些技术。 首先,Spring框架是Java企业级应用的基石,它提供了一种依赖注入(Dependency Injection,DI)的方式,使得组件之间的耦合度...
在本文中,我们将深入探讨Hibernate的事务处理机制以及`flush`方法的用法,并分析为何在某些场景下会出现特定的异常。 首先,我们需要了解Hibernate中的事务处理。在Java应用中,事务通常与SessionFactory和Session...
Hibernate缓存机制是提高应用程序性能的关键技术之一,它通过存储数据副本减少对物理数据库的访问。缓存可以分为两层:第一级缓存和第二级缓存。 **第一级缓存**是内置在Session中的,它是不可卸载的,也称为...
本文详细介绍了Hibernate事务回滚失败的问题原因和解决方法,并对Hibernate的事务管理机制和事务回滚机制进行了详细说明。开发人员在使用Hibernate时,应该遵循Hibernate提供的API和事务管理机制,以确保数据库的...
2. **Hibernate事务**: Hibernate本身也提供了一种事务管理机制,但在Spring环境中,我们通常使用Spring的事务管理器来协调。当@Transactional注解应用于方法上,Spring会在该方法执行前后自动管理事务的开始和结束...
总结来说,Hibernate的事务管理和并发控制是保证数据一致性和完整性的关键机制。理解并正确使用这些机制,可以确保在高并发环境下应用的稳定性和数据的准确性。在实际开发中,开发者需要根据项目需求和环境选择合适...
- **事务管理**:理解Hibernate事务机制,包括如何控制事务边界、隔离级别和回滚策略。 - **缓存机制**:探索Hibernate的一级缓存和二级缓存机制,了解它们的工作原理以及如何合理配置以提高应用性能。 - **高级...
**JDBC与Hibernate事务详解** 在Java开发中,数据库事务管理是确保数据一致性、完整性和原子性的重要机制。本讲解将深入探讨JDBC(Java Database Connectivity)和Hibernate两种不同的技术在处理事务时的方法和特点...
Hibernate 锁机制_悲观锁和乐观锁 Hibernate 锁机制是指在数据库访问中,为了维护数据的一致性和正确性,所采取的一些机制来防止数据的并发访问和修改。 Hibernate 中有两种锁机制:悲观锁和乐观锁。 一、悲观锁...
**一、Hibernate事务的概念** 事务是一组数据库操作,这些操作被视为一个逻辑单元,要么全部执行,要么全部不执行。这是为了保证数据的一致性。在Hibernate中,事务管理通常通过SessionFactory和Session接口来实现。...
### hibernate 事务管理注意...综上所述,Hibernate事务管理的合理配置对于保证系统的稳定性和数据一致性至关重要。开发者应该充分了解Hibernate的缓存机制及其对事务管理的影响,并根据实际情况灵活调整事务管理策略。
#### 二、Hibernate事务管理机制 Hibernate 本身不实现事务逻辑,而是依赖于底层的数据源(JDBC 或 JTA)来实现事务管理。这意味着,当你使用 Hibernate 进行数据操作时,所涉及的事务要么基于 JDBC 的事务管理,要么...
Hibernate缓存机制是提高应用程序性能的关键特性,尤其是在频繁与数据库交互的应用中。缓存通过减少对物理数据库的直接访问次数,显著提升了数据读取和写入的速度。这主要是因为从缓存中读取数据比从数据库中获取更...
首先,Hibernate 默认的事务处理机制是基于 JDBC Transaction。这意味着在进行数据库操作时,Hibernate 会依赖底层的 JDBC 连接来管理事务。在使用 JDBC 事务时,开发者通常需要手动开启和提交事务。例如,通过 `...
### Hibernate事务处理详解 #### 一、事务处理概念与特性 事务处理是数据库操作中一个核心的概念,尤其在处理复杂的业务逻辑时,确保数据的一致性和完整性至关重要。Hibernate作为Java领域中广泛使用的对象关系...
在 Hibernate 中,事务隔离级别是指数据库系统提供的一种机制,以解决并发事务带来的问题。为了确保数据库的可靠性和一致性,Hibernate 提供了四种事务隔离级别,分别是 Serializable、Repeatable Read、Read ...
本篇文章将深入探讨Hibernate的缓存机制和Spring的事务管理,以帮助开发者更好地理解和利用这两个强大的工具。 **一、Hibernate缓存** 1. **第一级缓存:Session缓存** - Hibernate的每个Session都有一个内置的...