`

理解hibernate的getCurrentSession()

阅读更多
Hibernate代码:
Session session = HibernateUnit.getSessionFactory().getCurrentSession();
session.beginTransaction();
....
session.getTransaction().commit();
getcurrentSession()方法总是会返回“当前的”工作单元。
Session在第一次被使用的时候,即第一次调用getCurrentSession()的时候,其生命周期就开始。然后她被Hibernate绑定到当前线程。当事物结束的时候,不管是提交还是回滚,Hibernate会自动把Session从当前线程剥离,并且关闭。若在次调用getCurrentSession(),会得到一个新的Session,并且开始一个新的工作单元。这是Hibernate最广泛的thread-bound model,支持代码灵活分层(事物划分和数据访问代码的分离)。
分享到:
评论

相关推荐

    新Hibernate SessionFactory().getCurrentSession()猫腻

    总的来说,理解并正确使用Hibernate的`SessionFactory.getCurrentSession()`方法对于优化代码性能和保证数据一致性至关重要。在实际开发中,应根据项目需求和环境选择合适的Session管理策略,并遵循最佳实践,以避免...

    ssh中getCurrentSession的使用

    在描述中提到的"ssh中getCurrentSession的使用",实际上可能是指在SSH集成框架中使用Hibernate框架时,获取数据库会话(Session)的方法。 在Hibernate中,`getCurrentSession()`是SessionFactory类的一个方法,它...

    SessionFactory.getCurrentSession与openSession的区别

    标题中的“SessionFactory.getCurrentSession与openSession的区别”是关于Hibernate框架中的两个关键操作,它们都是用于在Hibernate中获取数据库会话的。理解它们的区别对于优化数据访问性能和管理事务至关重要。 ...

    getCurrentSession 与 openSession() 的区别

    在Java的Hibernate框架中,`getCurrentSession()` 和 `openSession()` 都是用于获取与数据库交互的Session对象,但它们之间存在显著的区别。理解这些差异对于优化数据访问性能和管理事务至关重要。 首先,`...

    struts+hibernate 项目

    这个“Struts+Hibernate项目”旨在为开发者提供一个学习和实践的平台,帮助他们快速理解这两种框架的集成使用,并应用于实际项目开发。 Struts是一个基于MVC(Model-View-Controller)设计模式的开源框架,主要用于...

    hibernate与spring整合demo

    在Java开发领域,Hibernate和Spring都是极为重要的框架。Hibernate是一个对象关系映射(ORM)工具,它简化了数据库操作,而Spring则是一个...理解和掌握这种整合方式,对于提升Java EE应用开发的效率和质量至关重要。

    Hibernate权限管理例子

    首先,我们要理解Hibernate的核心概念——对象关系映射(ORM)。ORM允许我们用面向对象的方式来处理数据库,使得业务逻辑和数据存储之间的交互更为简洁。Hibernate通过注解可以方便地定义实体类(Entity),这些实体...

    hibernate登录页面测试

    本测试着重于使用Hibernate构建登录页面,这对于理解Hibernate如何与Web应用程序交互至关重要。 在 Hibernate 中,登录页面通常涉及以下关键组件和概念: 1. **实体类(Entity Class)**: 这是与数据库表相对应的...

    Hibernate的框架的总结

    ### Hibernate框架技术总结 #### 一、概述 Hibernate是一个开源的对象关系映射(ORM)框架,它为Java...通过这些内容的学习,开发者可以更好地理解和掌握Hibernate的工作原理及应用场景,提高开发效率和代码质量。

    hibernate 4.3.10 版本的笔记

    通过以上步骤和细节的介绍,我们对Hibernate 4.3.10版本有了较为全面的理解,包括环境搭建、实体映射、SessionFactory和Session的使用,以及生命周期状态的概念等。这对于开发者来说是非常宝贵的知识点,能够帮助...

    在hibernate中的数据库操作

    ### 在Hibernate中的数据库操作 ...特别地,`save`、`get`、`load` 和 `delete` 方法是进行基本 CRUD 操作的基础,而理解它们之间的差异能够帮助开发人员更高效地利用 Hibernate 来处理数据库交互。

    2020版Hibernate 12 道.pdf

    Hibernate通过元数据(如XML或注解)理解Java类和数据库表之间的映射关系。当操作对象时,Hibernate会自动处理对象的状态,将它们持久化到数据库。它管理着会话和事务,负责数据的缓存,并能透明地处理对象关系的...

    Spring源代码解析(八):Spring驱动Hibernate的实现.doc

    在Spring框架中,整合Hibernate作为持久层解决方案是一个常见的实践。Spring通过`...通过深入理解Spring与Hibernate的整合机制,开发者可以更好地利用这两个强大的框架来构建高效、稳定的企业级应用。

    基于IDEA的SSH项目之五:集成Hibernate--程序包

    在本教程中,我们将深入探讨如何在基于IntelliJ IDEA(IDEA)的SSH(Spring、Struts2和Hibernate)项目中...通过这些步骤,开发者可以更好地理解如何在IDEA中整合SSH框架与Hibernate,以便构建高效的企业级Java应用。

    hibernate

    ### Hibernate实践:深入理解与应用 #### 一、Hibernate简介及重要性 Hibernate是一个开源的对象关系映射(ORM)框架,用于Java环境下的数据库交互。它简化了数据持久化层的开发工作,允许开发者以面向对象的方式...

    Hibernate实践 DB操作

    - 编写单元测试可以帮助开发者更好地理解Hibernate的工作原理,并确保代码的质量。 - **3.5 性能监控** - 使用性能分析工具,如JProfiler等,来监控Hibernate在运行时的表现,及时发现并解决性能瓶颈。 总之,...

Global site tag (gtag.js) - Google Analytics