`

HttpSession和Hibernate里的Session的区别。

阅读更多

HttpSession和Hibernate里的Session的区别。

他们是完全不同的2个对象



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唯一的相似处就是名字有点像,其他没任何一样的地方。



一般的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);

}



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

分享到:
评论

相关推荐

    Hibernate_Session_Transaction

    在Java的持久化框架Hibernate中,`Session`和`Transaction`是两个至关重要的概念,它们在数据管理和事务处理中起到核心作用。这篇文章将深入解析这两个概念及其相关知识点。 `Session`是Hibernate提供的一种与...

    Hibernate体系结构的概要图

    这里当使用session这个术语时,其实指的是Hibernate中的session,而以后会将HttpSession对象称为用户session。  SessionFactory接口 SessionFactory接口负责初始化Hibernate。它充当数据存储源的代理,并负责创建...

    Eclipse中Hibernate简单配置和使用

    同时,Hibernate的session不同于JSP应用中的HttpSession。 SessionFactory SessionFactory接口负责初始化Hibernate。它充当数据存储源的代理,并负责创建Session对象。这里用到了工厂模式。需要注意的是...

    springMVC+spring+Hibernate框架

    Spring MVC、Spring 和 Hibernate 是Java开发中非常流行的三大框架,它们共同构成了企业级Web应用的基础架构。Spring MVC作为Spring框架的一部分,主要负责处理HTTP请求和响应,提供模型-视图-控制器(MVC)设计模式...

    “session已关闭”——解决方案

    在IT行业中,"session已关闭"是一个常见的错误提示,通常出现在Web应用开发中,特别是涉及到用户会话管理和服务器状态跟踪时。这个问题可能是由于多种原因引起的,包括但不限于:服务器配置问题、session过期、...

    SSH笔记-管理Session和批量操作数据库

    - Hibernate的Session是与数据库交互的主要接口,它负责持久化对象的创建、加载、更新和删除。 - Session支持一级缓存,可以有效减少对数据库的直接访问,提高性能。 - 使用`Session.beginTransaction()`开始事务...

    hibernate学习文档

    1. **Session 接口**:Session 是 Hibernate 的核心接口之一,它负责实际的数据操作,如保存(Save)、更新(Update)、删除(Delete)和加载(Load)对象。Session 对象与数据库连接密切相关,但它并不是线程安全的...

    struts2+Hibernate3写的注册登录的页面

    Struts2和Hibernate3是两种在Java Web开发中广泛应用的技术。Struts2是一个基于MVC(Model-View-Controller)架构的开源框架,用于构建可维护性和可扩展性优秀的Web应用。而Hibernate3则是一个对象关系映射(ORM)...

    hibernate(api 介绍).docx

    3. org.hibernate.Session Interface:和我们前面所学的 HttpSession 没有任何关系。我们在 Hibernate 应用中使用最广泛的接口,也被称为持久化管理器,提供了相关的数据库操作,比如添、更、删、加、查等基本操作。...

    struts+hibernate查询所有记录

    4. **Session Factory** 和 **Session**:Hibernate中,`SessionFactory` 是创建 `Session` 的工厂,而 `Session` 是与数据库交互的基本单元。 #### 四、具体实现步骤 1. **配置Hibernate** - 创建Hibernate配置...

    Hibernate 帮助文档

    需要注意的是,这里的“session”与Web开发中常用的`HttpSession`不同,它们在概念上有着本质的区别。 2. **SessionFactory接口**:主要负责初始化Hibernate环境以及创建`Session`对象。`SessionFactory`对象在整个...

    jsp+hibernate实现的购物车系统

    3. **Session和Transaction**:Hibernate中的Session是与数据库交互的主要接口,负责保存和检索对象;Transaction则是数据库操作的单元,确保数据的一致性。 4. **CRUD操作**:Create(创建)、Read(读取)、...

    Hibernate 文档.doc

    此外,Hibernate中的Session与JSP中的HttpSession不同,前者特指Hibernate的会话,后者则专指用户会话。 2. **SessionFactory接口** SessionFactory接口负责初始化Hibernate框架,充当数据存储源的代理,创建...

    JAVA学习资料-Hibernate简介.doc

    此外,Hibernate的Session不应与Web应用中的HttpSession混淆。 2. **SessionFactory接口**:SessionFactory是一个工厂接口,负责初始化Hibernate并创建Session对象。它是一个重量级的组件,通常一个项目只有一个...

    hibernate简介及特例

    1. Session接口:Session是Hibernate的主要工作接口,它负责执行对象的创建(Create)、读取(Read)、更新(Update)和删除(Delete)操作,即CRUD。Session是非线程安全的,因此在一个线程中应避免共享Session对象...

    hibernate初级教程图解

    - 在Hibernate中,`Session`的概念与JSP中的`HttpSession`不同,需要注意区分。 - **用途**:`Session`主要用于执行持久化操作,如保存、更新、删除和加载实体对象等。 ##### 3.2 SessionFactory接口 - **定义**:...

    J2EE企业级项目开发-3期(KC007) 5.3 探究Hibernate之核心接口文档.doc

    此外,Hibernate的Session不应与Web应用中的HttpSession混淆,后者用于管理用户的会话状态。 2. **SessionFactory接口**: SessionFactory接口是Hibernate的工厂类,它负责初始化和管理Hibernate环境。...

    javahibernate.rar

    这个“javahibernate.rar”压缩包文件包含了基于SSH框架和Hibernate实现的统计在线人数的小程序,非常适合初学者进行学习和实践。 在SSH框架中,Spring提供了依赖注入和事务管理,Struts处理用户请求并控制业务流程...

    hibernate severlet 账户信息管理

    在IT行业中,Hibernate和Servlet是两个非常重要的技术,它们在构建Web应用程序时起着关键作用。Hibernate是一个对象关系映射(ORM)框架,它简化了Java应用与数据库之间的交互,而Servlet则是Java Web开发中的核心...

Global site tag (gtag.js) - Google Analytics