- 浏览: 269820 次
- 性别:
- 来自: 新乡
文章分类
- 全部博客 (227)
- servciemix (10)
- db (18)
- javaTools (4)
- hibernate (31)
- web (3)
- spring (14)
- design pattern (4)
- java security (3)
- portal (1)
- ejb (6)
- session (2)
- java_lang (21)
- jbpm (29)
- struts (7)
- orgRights (2)
- project manager Jira (7)
- 跨库事务 (2)
- mysql (14)
- ubuntu (7)
- osgi (9)
- maven ant make (4)
- 分布式 高并发 高性能 (5)
- virgo-dm_server (0)
- osgi web (3)
- platform (1)
- smooks (1)
- business (1)
- 职场生涯 (14)
- Java编码格式 (2)
- web服务 (1)
- 计算机使用 (1)
- 健康工作生活的保障,工作中务必抛掉的不良心态 (4)
- 电信-网络监控 (1)
- 多线程-multithread (1)
- 海量数据-高性能 (2)
- Mybatis (1)
- web开发平台研发 (0)
- oracle (0)
- 应用服务器调优 (0)
- web前端 (0)
- servlet-jsp (0)
- tomcat (2)
- newtouch (1)
- portal_liferay (2)
- version control (1)
- apm-impact (2)
- tools (1)
- 研发管理 (1)
- 电商业务 (1)
- 生鲜电商市场调查 (0)
- PBX (0)
- 房东 (0)
最新评论
-
lifuchao:
...
权限问题 -
Branding:
谢谢,受教了,另外,CONN AS SYSDBA,必须是在操作 ...
Oracle密码忘记了怎么办? -
zhuchao_ko:
...
Portal实现原理 -
败类斯文:
不知道改哪里。。。木有见到红色。。表示悟性低了、、
jira error: Neither the JAVA_HOME nor the JRE_HOME environment variable is defin -
c__06:
正文:假如事务我是这样定义的: <tx:method n ...
Spring中Transactional配置
*
Hibernate事务全面介绍
* http://developer.51cto.com 2009-09-23 17:41 佚名 比特网 我要评论(0)
这里介绍Hibernate事务处理机制基于JDBC Transaction.我们也可以通过配置文件设定采用JTA作为事务管理实现。
Hibernate有很多值得学习的地方,这里我们主要介绍Hibernate事务,包括介绍在sessionFactory.openSession()中,Hibernate会初始化数据库连接等方面。
Hibernate是JDBC的轻量级封装,本身并不具备事务管理能力。在事务管理层,Hibernate将其委托给底层的JDBC或者JTA,以实现事务管理和调度功能。
Hibernate事务处理机制基于JDBC Transaction.我们也可以通过配置文件设定采用JTA作为事务管理实现:
1. <hibernate-configuration>
2. <session-factory>
3. ……
4. <property name="hibernate.transaction.factory_class">
5. net.sf.hibernate.transaction.JTATransactionFactory
6. <!--net.sf.hibernate.transaction.JDBCTransactionFactory-->
7. </property>
8. ……
9. </session-factory>
10. </hibernate-configuration>
基于JDBC的事务管理将事务管理委托给JDBC 进行处理无疑是最简单的实现方式,Hibernate事务对于JDBC事务的封装也极为简单。
我们来看下面这段代码:
1. session = sessionFactory.openSession();
2. Transaction tx = session.beginTransaction();
3. ……
4. tx.commit();
从JDBC层面而言,上面的代码实际上对应着:
1. Connection dbconn = getConnection();
2. dbconn.setAutoCommit(false);
3. ……
4. dbconn.commit();
就是这么简单,Hibernate并没有做更多的事情(实际上也没法做更多的事情),只是将这样的JDBC代码进行了封装而已。
这里要注意的是,在sessionFactory.openSession()中,hibernate会初始化数据库连接,与此同时,将其 AutoCommit 设为关闭状态(false)。而其后,在Session.beginTransaction 方法中,Hibernate 会再次确认Connection 的AutoCommit 属性被设为关闭状态( 为了防止用户代码对session 的Connection.AutoCommit属性进行修改)。
这也就是说,我们一开始从SessionFactory获得的session,其自动提交属性就已经被关闭(AutoCommit=false),下面的代码将不会对数据库产生任何效果:
1. session = sessionFactory.openSession();
2. session.save(user);
3. session.close();
这实际上相当于 JDBC Connection的AutoCommit属性被设为false,执行了若干JDBC操作之后,没有调用commit操作即将Connection关闭。如果要使代码真正作用到数据库,我们必须显式的调用Transaction指令:
1. session = sessionFactory.openSession();
2. Transaction tx = session.beginTransaction();
3. session.save(user);
4. tx.commit();
5. session.close();
【编辑推荐】
1. 描述Hibernate检查id字段
2. Hibernate Template简单描述
3. Hibernate DetachedCriteria学习经验
4. 概述Hibernate equals()方法
5. Hibernate使用Person对象
【责任编辑:志京 TEL:(010)68476606】
原文:Hibernate事务全面介绍
标 签: Hibernate事务
上一篇: Hibernate的优点全解 下一篇: Hibernate事务管理机制剖析
网友评论
查看所有评论(0)
通行证: 密码: 注册通行证
发表评论请注意语言文明
验证码: 请点击后输入验证码 点击图片可刷新验证码 匿名发表
Hibernate事务全面介绍
* http://developer.51cto.com 2009-09-23 17:41 佚名 比特网 我要评论(0)
这里介绍Hibernate事务处理机制基于JDBC Transaction.我们也可以通过配置文件设定采用JTA作为事务管理实现。
Hibernate有很多值得学习的地方,这里我们主要介绍Hibernate事务,包括介绍在sessionFactory.openSession()中,Hibernate会初始化数据库连接等方面。
Hibernate是JDBC的轻量级封装,本身并不具备事务管理能力。在事务管理层,Hibernate将其委托给底层的JDBC或者JTA,以实现事务管理和调度功能。
Hibernate事务处理机制基于JDBC Transaction.我们也可以通过配置文件设定采用JTA作为事务管理实现:
1. <hibernate-configuration>
2. <session-factory>
3. ……
4. <property name="hibernate.transaction.factory_class">
5. net.sf.hibernate.transaction.JTATransactionFactory
6. <!--net.sf.hibernate.transaction.JDBCTransactionFactory-->
7. </property>
8. ……
9. </session-factory>
10. </hibernate-configuration>
基于JDBC的事务管理将事务管理委托给JDBC 进行处理无疑是最简单的实现方式,Hibernate事务对于JDBC事务的封装也极为简单。
我们来看下面这段代码:
1. session = sessionFactory.openSession();
2. Transaction tx = session.beginTransaction();
3. ……
4. tx.commit();
从JDBC层面而言,上面的代码实际上对应着:
1. Connection dbconn = getConnection();
2. dbconn.setAutoCommit(false);
3. ……
4. dbconn.commit();
就是这么简单,Hibernate并没有做更多的事情(实际上也没法做更多的事情),只是将这样的JDBC代码进行了封装而已。
这里要注意的是,在sessionFactory.openSession()中,hibernate会初始化数据库连接,与此同时,将其 AutoCommit 设为关闭状态(false)。而其后,在Session.beginTransaction 方法中,Hibernate 会再次确认Connection 的AutoCommit 属性被设为关闭状态( 为了防止用户代码对session 的Connection.AutoCommit属性进行修改)。
这也就是说,我们一开始从SessionFactory获得的session,其自动提交属性就已经被关闭(AutoCommit=false),下面的代码将不会对数据库产生任何效果:
1. session = sessionFactory.openSession();
2. session.save(user);
3. session.close();
这实际上相当于 JDBC Connection的AutoCommit属性被设为false,执行了若干JDBC操作之后,没有调用commit操作即将Connection关闭。如果要使代码真正作用到数据库,我们必须显式的调用Transaction指令:
1. session = sessionFactory.openSession();
2. Transaction tx = session.beginTransaction();
3. session.save(user);
4. tx.commit();
5. session.close();
【编辑推荐】
1. 描述Hibernate检查id字段
2. Hibernate Template简单描述
3. Hibernate DetachedCriteria学习经验
4. 概述Hibernate equals()方法
5. Hibernate使用Person对象
【责任编辑:志京 TEL:(010)68476606】
原文:Hibernate事务全面介绍
标 签: Hibernate事务
上一篇: Hibernate的优点全解 下一篇: Hibernate事务管理机制剖析
网友评论
查看所有评论(0)
通行证: 密码: 注册通行证
发表评论请注意语言文明
验证码: 请点击后输入验证码 点击图片可刷新验证码 匿名发表
发表评论
-
如何使用hibernate
2012-05-24 19:21 0一、选择Hibernate还是iBATIS都有它的道理: H ... -
关于hibernate自动建表和主键的数据类型的关系
2012-02-27 16:18 1142要想让hibernate自动建表, 1、除了 <prop ... -
用Spring+Hibernate链接时,在增删改时会报错: Write operations are not allowed in read-only mod
2011-09-11 19:53 884用Spring+Hibernate链接时,在增删改时会报错: ... -
[转]hibernate延迟加载
2011-04-26 11:41 5672007-12-01 [转]hibernate延迟 ... -
Hibernate利用XDoclet自动生成配置文件
2011-04-18 18:34 801Hibernate利用XDoclet自动生 ... -
如何利用 myeclipse 生成Hibernate 配置文件
2011-04-18 18:13 1247在hibernate中,每个数据表对应的其实是一个实体类,每个 ... -
Hibernate Synchronizer是一个Eclipse插件,可以自动生成*.hbm文件、持久化类和DAOs
2011-04-18 18:00 1895Hibernate Synchronizer是一个Eclips ... -
Hibernate auto produce
2011-04-18 17:52 981Hibernate 中需要class和mapp ... -
使用动态代理实现用AOP对数据库进行操作
2011-04-12 14:11 947使用动态代理实现用AOP对数据库进行操作 2008-03-14 ... -
Hibernate中cascade与inverse属性详解
2011-04-01 16:20 938Hibernate中cascade与inverse属性详解 ... -
事务和事务边界
2011-03-31 15:44 101310.1.2 事务和事务边界 http://book.51ct ... -
事务传播行为种类
2011-03-31 15:31 821事务传播行为种类 Spring在TransactionDef ... -
Hibernate saveOrUpdate分析
2011-03-31 15:30 861* Hibernate s ... -
使用Spring AOP代理方式实现声明式事务的原理
2011-03-31 15:28 1205使用Spring AOP代理方式实 ... -
Hibernate Session缓存概述
2011-03-31 15:27 1006* Hibernate Session缓存 ... -
解说Hibernate的工作原理实例
2011-03-31 15:26 874* 解说Hibernate的工作原理实例 ... -
简述Hibernate配置连接池
2011-03-31 15:25 842* 简述Hiber ... -
简单解析J2EE数据持久层设计
2011-03-31 15:24 980* 简单解 ... -
浅析Hibernate Callback接口
2011-03-31 15:23 893* 浅析Hibernate Callbac ... -
概述Hibernate equals()方法
2011-03-31 15:22 768* 概述Hiber ...
相关推荐
2. Hibernate事务管理:使用`HibernateTransactionManager`结合SessionFactory进行事务控制。 3. AOP(面向切面编程)在事务管理中的应用:`TransactionInterceptor`基于AOP拦截方法调用,处理事务。 4. 配置事务...
而Spring框架则以其全面的功能,包括依赖注入、AOP(面向切面编程)以及事务管理,成为企业级应用的首选。本篇文章将深入探讨Hibernate的缓存机制和Spring的事务管理,以帮助开发者更好地理解和利用这两个强大的工具...
本示例“第二部分spring+hibernate+jta 分布式事务Demo”将帮助我们理解如何在这三个框架之间协同工作,实现高效且可靠的事务管理。 首先,让我们深入了解一下这三个组件: 1. **Spring**:这是一个全面的Java应用...
1. **Spring框架**:Spring是一个全面的后端开发框架,它提供了诸如依赖注入、AOP(面向切面编程)、事务管理等核心特性。在本实例中,Spring主要负责事务管理和与Hibernate的集成。 2. **Hibernate框架**:...
Hibernate 是一个强大的 ...总之,Hibernate API 提供了全面的工具集,让开发者能够高效地处理数据库操作,同时通过扩展接口支持数据库独立性,增强了灵活性和可维护性。理解并熟练使用这些接口是掌握Hibernate的关键。
Spring是一个全面的后端应用程序框架,提供了依赖注入、AOP(面向切面编程)、事务管理等功能。Struts则是一个MVC(模型-视图-控制器)框架,主要处理Web层的逻辑。Hibernate是一个ORM(对象关系映射)工具,它使得...
本文将深入探讨如何将Spring与Hibernate进行集成,并重点介绍声明式事务的配置与使用。 Spring框架是一个全面的企业级应用开发框架,它提供依赖注入(DI)和面向切面编程(AOP)等功能,简化了Java应用的复杂性。另...
总结,Hibernate 全面涵盖了对象关系映射、配置管理、数据库连接池、事务处理、持久化上下文和缓存机制等多个方面,是 Java 开发者处理数据库操作的强大工具。理解和掌握这些知识点,对于提升 Java 应用程序的开发...
Hibernate支持JDBC事务和JTA(Java Transaction API)事务,可以与Spring的事务管理机制集成,实现统一的事务策略。 在SSH事务配置中,提到的“通用性”是指通过合理配置,可以将事务管理应用到多个DAO(数据访问...
**Hibernate 框架全面解析** Hibernate 是一个开源的对象关系映射(ORM)框架,它为Java开发者提供了方便的数据持久化服务,将数据库操作转换为对Java对象的操作,从而简化了开发过程。这个CHM文档集合包含了丰富的...
以上只是压缩包中部分可能包含的知识点,实际学习资料可能包括教程文档、示例代码、实战项目等,通过深入学习和实践,开发者可以全面掌握Hibernate的精髓,并将其应用到实际开发中,提高开发效率,降低维护成本。...
北京动力节点教育培训公司提供的Hibernate5讲义,不仅对Hibernate框架进行了全面的介绍,而且通过实例演示了如何使用Hibernate进行基本的数据库操作。该讲义涵盖了Hibernate的基本技术、配置方法以及如何开发一个...
本文将详细探讨"Spring2.0+Hibernate3.1的事务管理"这一主题,以及如何结合这两个框架来实现高效、可靠的事务处理。 首先,Spring 2.0是一个全面的Java企业级应用开发框架,它提供了依赖注入(DI)和面向切面编程...
- **构建事务型应用**: 学习如何利用 Hibernate 构建能够处理复杂数据的企业级 Java 应用程序。 - **现代构建流程**: 了解在当前环境中如何有效地使用 Hibernate 进行开发。 - **Java 8 特性**: 掌握 Java 8 新特性...
Spring2.5作为一款强大的轻量级框架,提供了全面的事务管理功能,支持编程式和声明式事务管理。编程式事务管理允许开发者在代码中显式地开始、提交或回滚事务,而声明式事务管理则通过配置来定义哪些方法需要在事务...
**标题与描述解析** 标题"Hibernate 中文api 等学习资料"暗示了这是一组针对...通过阅读和学习这些资料,开发者可以全面掌握Hibernate框架,并将其应用于实际项目中,提升Java应用的数据访问层开发效率和质量。
Spring 提供了一个全面的编程和配置模型,而 Hibernate 则是 ORM(对象关系映射)框架,用于简化数据库操作。 Spring 框架的 jar 包介绍: 1. **spring.jar**:这是 Spring 的核心发布包,包含了大部分功能,但不...
Spring是全面的Java应用框架,提供了一个开发Java应用的全栈解决方案;Hibernate是一个强大的对象关系映射(ORM)框架,简化了数据库操作;而MyBatis则是一个轻量级的持久层框架,它解决了SQL与Java代码的耦合问题。...