`

openSession() 与 getCurrentSession () 的区别

阅读更多
openSession() 与 getCurrentSession () 的区别


区别一:
openSession() 获取session需要在最后手动关闭session
getCurrentSession ()是自动关闭session,这种方法必须在hibernate.cfg.xml文件中配置自动session管理(current_session_context_class)的属性值为thread

区别二:
1.openSession() 是获取一个新的session
2.getCurrentSession () 获取和当前线程绑定的session,换言之,在同一个线程中,我们获取的session是同一session,这样可以利于事务控制。
上下文中如果已经有session,就用原来的session,没有的话才创建新的session
分享到:
评论

相关推荐

    getCurrentSession 与 openSession() 的区别

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

    SessionFactory.getCurrentSession与openSession的区别

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

    ssh中getCurrentSession的使用

    2. **为什么使用getCurrentSession()**:与直接调用`openSession()`创建新的Session相比,`getCurrentSession()`有以下优势: - 它能够自动管理Session的生命周期,比如在请求结束时关闭Session,避免资源泄露。 -...

    新Hibernate SessionFactory().getCurrentSession()猫腻

    当我们调用SessionFactory().getCurrentSession()时,Hibernate会为我们提供一个已存在的或者新创建的Session实例,这个行为与直接调用SessionFactory.openSession()有所不同。`getCurrentSession()`方法旨在支持...

    Spring视频教程(3)

    2. **编程式事务与OpenSession/GetCurrentSession的区别**: 编程式事务处理是手动管理事务边界,而OpenSession/GetCurrentSession模式则是在操作数据库时自动开启和关闭Session。这两者在事务管理和性能上有不同的...

    SSH框架部分常见面试题.pdf

    openSession 和 getCurrentSession 是 Hibernate 中的两个会话方法,openSession 用于创建新的会话,getCurrentSession 用于获取当前会话。 saveOrUpdate() 和 merge() saveOrUpdate() 和 merge() 是 Hibernate 中...

    Hibernate存储Clob字段的方式总结

    同时,还探讨了Hibernate框架中getCurrentSession()与openSession()的区别。 首先,要操作数据库中的Clob字段,需要关注的是如何在Java对象与Clob字段之间进行转换。由于Clob字段通常用于存储大量文本数据,如果...

    hibernate关于session的关闭实例解析

    本文详细介绍了 Hibernate 中 Session 的关闭实例解析,包括 getSession() 和 openSession() 的区别、getCurrentSession() 的配置、openSession() 和 getCurrentSession() 的关联,以及 Session 的关闭。希望本文...

    J2EE考试题目及答案定义.pdf

    openSession()和getCurrentSession()方法都是用于获取Session对象的方法,但它们有所不同。getCurrentSession创建的Session对象会和当前线程绑定,而openSession不会。getCurrentSession创建的Session对象在事务...

    SSH-Jsp期末考试简答题带答案

    2. Hibernate 中 openSession()和 getCurrentSession()的差别 Hibernate 是一个基于Java的持久层框架,它提供了对数据库的访问和操作能力。openSession()和getCurrentSession()是Hibernate中两个重要的Session创建...

    hibernat框架学习

    - **OpenSession vs GetCurrentSession**: - **OpenSession**:每次调用都会创建新的Session。 - **GetCurrentSession**:根据当前线程返回已存在的Session,如果没有则新建一个。 #### 总结 Hibernate作为一种...

    [尚硅谷]_佟刚_Hibernate面试题分析

    8. getCurrentSession()和openSession()的区别: - getCurrentSession()会检查当前线程是否已有Session,若有则返回,若无则创建。 - openSession()方法总是创建一个新的Session。 - getCurrentSession()在事务...

    J2EE考试题目及答案.doc

    `getCurrentSession()`创建的Session与当前线程绑定,事务结束后自动关闭,而`openSession()`则不会自动管理,需要手动关闭。`getCurrentSession()`更适用于需要在同一个事务中操作多个对象的情况。 7. **Session...

    hibernate 学习笔记

    hibernate 学习笔记: 了解hibernate的基本概念 配置hbm.xml cfg.xml 快速入门案例3: 从domain-xml-数据库表 ...openSession()和getCurrentSession() 线程局部变量模式 transaction事务 在web项目中开发hibernate

    hibernate笔记心得

    在Hibernate中,我们有两种方式来获取和管理Session:`openSession()`和`getCurrentSession()`。`openSession()`每次都会创建一个新的Session,并且在使用完毕后需要手动关闭,这适用于短生命周期的事务。而`...

    JAVAEE试题(含答案).docx

    这两个方法的区别在于,openSession()方法可以在一个线程中使用不同的Session,而getCurrentSession()方法则可以在同一线程中,保证使用同一个Session。 三、填空题解释 1. MVC的三个组成部分:MVC的三个组成部分...

    hibernate学习笔记

    - 提供`openSession()`和`getCurrentSession()`方法: - `openSession()`每次创建新Session,使用后需关闭。 - `getCurrentSession()`提供线程绑定的Session,方便事务管理。 总结,Hibernate通过O/R Mapping...

    JAVAEE试题(含答案).pdf

    6. Hibernate 框架中的 SessionFactory 类有两个获得 session 的方法:openSession() 和 getCurrentSession()。如果需要在同一线程中,保证使用同一个 Session 则使用 getCurrentSession(),如果在一个线程中,需要...

Global site tag (gtag.js) - Google Analytics