SessionFactory的openSession与getCurrentSession区别

SessionFactory

1 用来产生和管理sesssion

2 通常情况下,每个应用只需要一个SessionFactory,除非要访问多个数据库的情况

3 openSession()与openSession()

(1) openSession()总是创建新的session,需要手动close().

(2)getCurrentSession()事务提交则自动关闭.从上下文环境中获得session,如果当时环境中不存就创建新的.如果环境中存在就使用环境中的,而且每次得到的都是同一个session(在session提交之前,提交之后就是新的了).用途:界定事务边界.

所谓的上下文参见配置文件

<property name="current_session_context_classs">thread</property>

取值范围 jta | thread | managed | custom.Class

SessionFactory的openSession与getCurrentSession区别,布布扣,bubuko.com

时间: 2024-10-14 01:01:45

SessionFactory的openSession与getCurrentSession区别的相关文章

2014年12月8日-configuration类以及openSession和getCurrentSession的区别

Hibernate的configuration类: configuration类是用来加载hibernate配置文件的,默认的是读取hibernate.cfg.xml配置文件的信息. Configuration cfg = new Configuration().configure(); //Configuration cfg = new AnnotationConfiguration().configure(); //使用annotation的加载配置文件的方法 SessionFactory

openSession和getCurrentSession的比较

在比较openSession和getCurrentSession这两个方法之前,我们先认识一下这两个方法. 在进行配置信息管理时,我们一般进行一下简单步骤: 1 Configuration cfg = new Configuration(); // 获得配置信息对象 2 SessionFactory sf = cfg.configure().buildSessionFactory(); //解析并建立Session工厂 3 4 1. Session session = sf.getCurrent

由openSession、getCurrentSession和HibernateDaoSupport浅谈Spring对事物的支持

由openSession.getCurrentSession和HibernateDaoSupport浅谈Spring对事物的支持 Spring和Hibernate的集成的一个要点就是对事务的支持,openSession.getCurrentSession都是编程式事务(手动设置事务的提交.回滚)中重要的对象,HibernateDaoSupport则提供了更方便的声明式事务支持. Hibernate中最重要的就是Session对象的引入,它是对jdbc的深度封装,包括对事务的处理,Session对

HIbernate中openSession和getCurrentSession

??这两者的区别网上很多资源,我这里就copy一下了,然后有点问题的是今天遇到的问题. ??openSession和getCurrentSession的根本区别在于有没有绑定当前线程,所以,使用方法有差异: * openSession没有绑定当前线程,所以,使用完后必须关闭, * currentSession和当前线程绑定,在事务结束后会自动关闭. ??今天在复习Hibernate时,看到Hibernate检索方式的时候,写了一个小例子: @Test public void query01()

java openSession和getCurrentSession的比较

比较openSession和getCurrentSession这两个方法之前,我们先认识一下这两个方法. 在进行配置信息管理时,我们一般进行一下简单步骤: Configuration cfg = new Configuration();  // 获得配置信息对象 SessionFactory sf = cfg.configure().buildSessionFactory(); //解析并建立Session工厂 1. Session session = sf.getCurrentSession(

4.openSession() 、 getCurrentSession()与session上下文

openSession()每次都打开一个新的session,用了openSession(),要记得close()掉 getCurrentSession()在session上下文(hibernate配置文件中的current_session_context_class有设定)找session,如果有,则返回该session,否则会新建一个session.不需要调用close(),transaction commit后会自动关闭.openSession()与getCurrentSession()不能

hibernate学习4_openSession()与getCurrentSession()区别

hibernate读取配置文件创建sessionBuildFactory后可以通过如下两种方式建立session (1)openSession() 此方法每次会生成一个新session 如下测试后返回false,说明两次生成的session不是同一个session @Test public void testOpenSession(){ Session session1 = sf.openSession(); Session session2 = sf.openSession(); System

SessionFactory、HibernateTemplate、HibernateDaoSupport之间的关系说明

在接触HibernateTemplate之前,我们知道,在对数据库进行CRUD操作之前,需要开启session.transaction等等.在hibernate学习过程中,我们知道了,得到session之前,需要先得到SessionFactory,进而从SessionFactory里面openSession(),或者getCurrentSession(),接着开启一transaction,然后进行对数据库的操作,在操作结束后,提交事务,关闭session.当然如果session是通过getCur

hibernate知识点理解

1.只有业务逻辑层出现的问题? 1.切换数据库麻烦 2.sql编写起来麻烦 3.我们的程序员不需要关注数据库,只希望关心业务本身 2.hibernate的好处 1.程序员只关心业务逻辑,使角色更加清楚 2.分层更清楚 3.通用修改更强,适合数据库平台的切换 4.对象化,数据库关系变成java对象关系,更加方便操作 5.性能保证,hiernate可能按照不同的数据库操作,但是会最优sql语句 6.增加程序的鲁棒性. 3.hibernate开放的三种方式 1.有Domain object >> m