`

Configuration_SessionFactory_GetCurrentSession_OpenSession以及Hibernate中的三种状态

 
阅读更多
SessionFactory sf = new Configuration().configure().buildSessionFactory();
实例化一个new Configuration()对象后通过configure()方法获取hibernate的配置文件hibernate.cfg.xml里的数据库配置信息后,通过buildSessionFactory()方法获取数据库连接池对象

改一下Hibernate的配置文件名:hibernate.xml
也可以这样写
SessionFactory sf = new Configuration(“hibernate.xml”).configure().buildSessionFactory();


Session session = sessionfactory.openSession();
session.heginTransaction();
session.save(t);
session.getTransaction().commit();
session.close();
上面的openSession()每一次都会重新打开一个Session,每一次都是新的,并且每打开

一个执行后都要手动关闭Session对象

Session session = sessionfactory.getCurrentSession();
session.heginTransaction();
session.save(t);
session.getTransaction().commit();
上面的getCurrentSession()的Session会从上下文找,如果有,用旧的,如果没有新建

一个Session
当你commit()后就会自动关闭Session对象。

一个事务说明二个操作全部都完成,要不二个都不完成通过



<property name="current_session_context_class">thread</property>
可以分为 Thread线程事务和JTA分布式事务
数据同时访问二个数据添加信息,
如果二个都添加成功了,说明执行成功
如果有一个添加失败,说明执行失败
这时就要使用JTA事务管理器来执行。
<property name="current_session_context_class">thread</property> 这个配置不可缺少



Hibernate中的三种状态:



http://www.secn.com.cn
  • 大小: 56.5 KB
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics