Hibernate中的Session什么时候关闭?

极限鞋馆

极限鞋馆

2016-02-19 19:28

想要天天向上,就要懂得享受学习。图老师为大家推荐Hibernate中的Session什么时候关闭?,精彩的内容需要你们用心的阅读。还在等什么快点来看看吧!

  hibernate是持久化对象的,那它里面的Session什么关闭?

  问题补充:感觉你说的不怎么对

  session似乎只在跟用户交互的时候才进行创建

  等用户用完session以后,它就会随着用户销毁

  以上是我对楼主补充问题的回答,顺带给楼下的初学者一点知识的补充。
  ***************************************

  楼主只怕是初学Java,还没有搞清除HttpSession和Hibernate里的Session的区别。因为楼主说的东西是HttpSession的内容。
  他们是完全不同的2个对象

(本文来源于图老师网站,更多请访问http://m.tulaoshi.com/bianchengyuyan/)

  javax.servlet.http.HttpSession是一个抽象接口
  它的产生:J2EE的Web程序在运行的时候,会给每一个新的访问者建立一个HttpSession,这个Session是用户身份的唯一表示。注重,是容器(Tomcat,Resin)自动创建的。

  用途:存放这个用户的一些经常被用到的信息,例如:用户名,权限。例如在购物车程序里,存放用户买的商品。

  销毁:一定时间(跟容器有关)内,用户无任何动作,session自动销毁。

  得到的方法:
  HttpSession session = request.getSession();
  常用方法setAttribute
  session.setAttribute(key,value);
  这样在另一个jsp或者Servlet里,可以用
  session.getAttribute(key);得到value
  类似一个Map

  $$$$$$$$$$
  org.hibernate.Session
  是hibernate操作数据库的一个句柄对象。它跟上面那个Session唯一的相似处就是名字有点像,其他没任何一样的地方。
  至于它的用法,相信我在下面已经说得很明白了。
  不懂的加我QQ:178036872

  ***************************************

  一般的Hibernate程序中,Session由用户手动获取,手动关闭。
  正规项目中,在业务层获取Session
  Session session = HibernateSessionFactory.openSession();

  然后把此session传给dao层,将数据持久化或其他的操作。
  一次业务逻辑可能调用多个dao方法,例如银行转帐,是一个先减后增的过程,所以会调用2个dao里的方法(甲帐户减,乙帐户增)。因此,可以利用业务层产生的同一个Session来做这件事

  a1和a2代表帐户实体。
  a1是甲的,a2是乙的。
  a1.setAcount(a1.getAcount()-1000);
  a2.setAcount(a2.getAcount()+1000);
  dao.update(a1,session);
  dao.update(a2,session);
  Transaction tx = session.beginTransaction();
  tx.commit();

  最后在业务层,将session关闭
  session.close();
  或者调用HibernateSessionFactory.closeSession(session);

  最好能加上异常捕捉,之类,如产生异常,即时回滚。保证操作不出意外。

  try{
  ...
  tx.commit();
  }catch(Exception e){
  tx.rollback();
  }finally{
  HibernateSessionFactory.closeSession(session);
  }

(本文来源于图老师网站,更多请访问http://m.tulaoshi.com/bianchengyuyan/)

  默认session的时间为20分钟,假如想在这之前清除的话可以使用Session.Abandorn方法


展开更多 50%)
分享

猜你喜欢

Hibernate中的Session什么时候关闭?

编程语言 网络编程
Hibernate中的Session什么时候关闭?

减肥最佳的时间是什么时候 一天中什么时候减肥最好

减肥 瘦身
减肥最佳的时间是什么时候 一天中什么时候减肥最好

s8lol主宰符文怎么配

英雄联盟 网络游戏
s8lol主宰符文怎么配

一天中什么时候称体重最轻 什么时候称体重最重?

减肥
一天中什么时候称体重最轻 什么时候称体重最重?

生姜适合什么时候吃?一天中什么时候吃姜最好

饮食养生 健康饮食
生姜适合什么时候吃?一天中什么时候吃姜最好

lol偷钱流符文搭配推荐

英雄联盟 网络游戏
lol偷钱流符文搭配推荐

什么时候开始的

心理健康 婚姻保鲜
什么时候开始的

宝宝什么时候吃DHA 吃到什么时候

孕妇食谱
宝宝什么时候吃DHA 吃到什么时候

lolAD刺客新符文搭配推荐

英雄联盟
lolAD刺客新符文搭配推荐

在word2003文档中显示页眉页脚的方法

在word2003文档中显示页眉页脚的方法

如何有效防止Java程序源码被人偷窥?

如何有效防止Java程序源码被人偷窥?
下拉加载更多内容 ↓