`
greemranqq
  • 浏览: 974618 次
  • 性别: Icon_minigender_1
  • 来自: 重庆
社区版块
存档分类
最新评论

hibernate 获取session的方式记录

阅读更多

        用公司搭建的一个ssh 框架的时候,发现daoImpl 里面,组员都用不同的方式获取的session,大概了解了下情况,在这里记录一下。注意:版本是spring 2.5 和hibernate3 。spring 3.1 就没HibernateDaoSupport

         *DaoImpl  extends **,最后还是继承了 HibernateDaoSupport。

         用到的session 方式有:

         1. *.getSessionFactory.getCurrentSession() .

         2. *.getSessionFactory.openSession(); 

         3. *.getSession();

 

第一种: 会将session 与线程绑定,每次都从该线程去找,如果有,就拿过来用,没有就创建绑定。有几个                  线程实现的方法,去看源码就有了。该线程需要hibernate.current_session_context_class进行配                  置。这玩意儿,我们是让spring 进行管理,不用手动维护,比较方便,同一线程一直用一个线程,                节约资源

第二种:从新建立一个新的session,多次开启关闭,会耗内存资源,而且使用spring 管理的时候,                               没有进行绑定。如果同一线程需要不同session ,可以尝试使用

第三种:从线程池里面拿session,但如果线程池没有,或者超过了,也会从新创建,这时候的session,会让

                   你手动进行关闭,麻烦,也耗资源感觉还是第一种使用方便点。

分享到:
评论

相关推荐

    重写hibernate的session简单增删改查

    在Java的持久化框架中,Hibernate是一个非常流行的ORM(对象关系映射)工具,它使得开发者可以使用面向对象的方式来操作数据库。"重写hibernate的session简单增删改查"是一个针对初学者的实践教程,旨在帮助理解如何...

    Hibernate_Session_Transaction

    - `getTransaction()`:获取与当前`Session`相关的`Transaction`对象,以便检查或控制事务状态。 - `close()`:关闭`Session`,释放与数据库的连接。 总的来说,`Hibernate Session`负责对象的持久化操作,而`...

    Hibernate的Session的javadoc

    Hibernate的Session接口是Java应用程序与Hibernate之间主要的运行时交互接口,它提供了对持久化对象的创建、读取和删除操作。Session的概念是基于对象的状态管理和数据库事务的,它的生命周期通常与一个物理事务绑定...

    实现自己的Hibernate框架之Session 方法实现

    5. **查询(createQuery()、createSQLQuery()、find()等)**:Hibernate提供丰富的查询方式,如HQL(Hibernate Query Language)、 Criteria API 和原生SQL查询。createQuery()用于执行HQL,createSQLQuery()执行...

    hibernate的核心接口--Session

    Hibernate 保证同一 Session 实例缓存中的每个数据库记录仅对应一个持久化实例。 - **行为**: 在 Session 清理缓存时,会根据持久化实例的属性变化来同步更新数据库。 **3. 脱管状态 (detached)** - **定义**: ...

    HibernateSession , Transaction 研究

    本文将深入研究Hibernate中的`Session`和`Transaction`,这两个概念是理解Hibernate工作原理的关键。 首先,让我们了解`Session`。在Hibernate中,`Session`充当了应用程序与数据库之间的桥梁,它是持久化操作的...

    Hibernate Session 4种对象状态.docx

    如果对象的属性发生改变并希望更新到数据库,需要重新获得Session,并调用merge()或update()方法。 4. **删除状态(Removed State)**: 调用Session的remove()方法后,持久化对象会被标记为删除状态。这个对象的...

    struts+hibernate查询所有记录

    ### Struts+Hibernate查询所有记录 #### 一、概述 在Java Web开发中,Struts与Hibernate是非常流行的框架组合,用于构建复杂的企业级应用。本文将详细介绍如何利用Struts和Hibernate来实现对Oracle数据库中所有...

    hibernate的查询方式介绍和hibernate的批处理和连接池配置hibernate

    ### Hibernate 查询方式与批处理及连接池配置详解 #### 一、Hibernate 查询方式介绍 Hibernate 是一款优秀的 ORM(对象关系映射)框架,它能够极大地简化数据库操作,并提供多种查询方式来满足不同的业务需求。 #...

    04_传智播客hibernate教程_Session接口及getloadpersist方法

    本教程聚焦于Hibernate中的Session接口以及get、load、persist这三个常用的方法,它们是 Hibernate 实现对象-关系映射(ORM)的核心组件。 首先,我们来理解Session接口。Session在Hibernate中扮演着数据库连接的...

    hibernate的_映射、三态、脏数据、Session缓存

    - **ORM(Object Relational Mapping)映射**:这是Hibernate提供的核心功能,它允许将Java类映射到数据库表,将Java实例映射到数据库记录,将Java属性映射到数据库字段。 - **映射文件**:通常使用`.hbm.xml`文件...

    hibernate第一个hibernate

    - 读取(Read):`Session.get()`或`Session.load()`用于根据主键获取对象,而`Query`或`Criteria`接口则支持更复杂的查询。 - 更新(Update):通过`Session.update()`或`Session.saveOrUpdate()`更新已存在的...

    Hibernate中Session增删改查操作代码详解

    在Hibernate框架中,Session是核心接口之一,它负责在应用程序与数据库之间建立桥梁,实现对象的持久化操作。本文将深入探讨Session中的四个基本操作:保存(save)、更新(update)、删除(delete)和查询(query)...

    Hibernate操作数据库的方法

    Hibernate是一种流行的Java ORM(对象关系映射)框架,它用于简化数据库操作,使得Java开发人员能够以面向对象的方式来操作关系数据库。使用Hibernate,开发者无需直接使用JDBC API,因为Hibernate封装了大部分...

    Hibernate入门案例源码

    5. 使用Session:通过SessionFactory获取Session实例,进行数据库操作。 案例中的源代码可能包括以下部分: - Entity类:代表数据库表,通常包含属性和getter/setter方法,以及可能的注解。 - Mapping文件或注解:...

    Hibernate方法的实现

    在Java世界中,Hibernate提供了一种强大的方式来处理数据库操作,将复杂的SQL语句封装到对象中,使得代码更加简洁、可读性更强。本篇将深入探讨Hibernate方法的实现,包括其基本概念、配置、实体类、会话工厂以及...

    hibernate数据库通用SQL代码

    同样,获取Session、开始事务,然后调用`session.update(o,id)`更新数据库中的记录,提交事务并关闭Session。 ```java public void update(Object o, Serializable id) { Session session = Hibernate...

    深入浅出 Hibernate.pdf

    4. **开启Session**:通过SessionFactory获取Session实例。 5. **进行数据库操作**:使用Session进行增删改查等操作。 6. **提交事务**:如果需要的话,提交事务。 7. **关闭资源**:最后记得关闭Session和...

    struts+hibernate 项目

    例如,创建新记录时,可以通过Hibernate的Session接口保存实体对象;更新记录则对应于Session的update方法;删除操作使用Session的delete方法;查询通常借助Criteria、HQL或SQL语句,通过SessionFactory的...

    Hibernate执行持久层访问步骤

    1. 获取Session:SessionFactory的openSession()方法用于获取Session实例,它是与数据库交互的主要接口。 2. 开启事务:在执行任何数据库操作前,应先开启事务,通过Session的beginTransaction()方法实现。 五、...

Global site tag (gtag.js) - Google Analytics