概述Hibernate Session

开发 后端
这里介绍如果Hibernate Session 是由容器建立的,那这个方法就不能在容器外使用,因为这需要一个配置好的Session对象。

Hibernate还是比较常用的,于是我研究了一下Hibernate Session,在这里拿出来和大家分享一下,希望对大家有用。

Hibernate Session

关于这一点,你可以参考关于Hibernate和持久层的文章或者指南,也可以查询各种对象和实例来了解怎么使用事务,所以我不打算详细说这些内容。相反,我会更多考虑使用实体后我们需要做什么?这会对Hibernate Session 对象有怎样的影响?是否可以使用现有的业务对象,甚至是数据访问对象?当我建立数据层的时候,我使用了Spring及其提供的一些类来管理数据库连接,事务和会话。这些对象都在XML配置文件里面定义了,并与很多规则和关系紧密集成在Spring里。首先,通过Spring的依赖注射,DAO对象会被引入到应用服务中(关于依赖注射,参见Bruce Tate的《Five Things I Love About Spring》一书)。然后,配置应用服务以捕获DAO异常(通过XML配置文件),让Spring去处理。可是因为我觉得把Spring集成到数据加载应用里会带来相当大的工作量。我对DAO对象做了轻微的修改,使得可以在web应用之外使用他们。

例如说在PersonDAO类里面有一个保存person对象的方法。如果Hibernate Session 是由容器建立的,那这个方法就不能在容器外使用,因为这需要一个配置好的Session对象。以下是一个典型的PersonDAO,它由Spring 容器提供了对Session的支持。

  1. import org.springframework.orm.hibernate.HibernateTemplate;  
  2. import test.pojos.Person;  
  3.  
  4. public class PersonDAO extends HibernateTemplate {  
  5.  
  6. public PersonDAO(){}  
  7.  
  8. public Person save(Person aPerson) {  
  9. if(aPerson != null) super.save(person);  
  10. return person;  
  11. }  

上面的类继承的是Spring HibernateTemplate 类,它提供了各种不错的使用Hibernate的基类方法。而且由于HibernateTemplate类维护了大多数的常见操作,你就只需要专注特定的持久层需求。当然也应该有相应的异常处理,但在本次范例当中,只要以上的就够了。

【编辑推荐】

  1. Spring Hibernate简单讨论
  2. OSGi与Spring:设置Spring DM开发环境
  3. 使用Spring DM创建Hello World,以及OSGi服务
  4. Spring MVC总结:善用注解,生活更轻松
  5. 概括spring hibernate集成
责任编辑:佚名 来源: Yesky
相关推荐

2009-09-23 17:03:08

Hibernate S

2009-09-24 17:24:20

Hibernate S

2009-06-29 08:48:41

Hibernate缓存

2009-09-25 13:51:13

Hibernate S

2009-09-23 17:18:16

Hibernate S

2009-09-22 10:09:21

Hibernate S

2009-09-25 09:46:03

Hibernate s

2009-09-25 10:53:40

Hibernate S

2009-09-23 09:47:23

Hibernate e

2009-09-21 17:55:14

Hibernate O

2009-09-25 16:27:33

Hibernate S

2009-09-22 15:10:22

Hibernate映射

2009-09-28 12:57:54

Hibernate C

2009-09-22 09:13:43

Hibernate D

2009-06-26 16:33:09

saveOrUpdatHibernate

2009-06-26 16:34:50

delete()方法Hibernate S

2009-06-12 16:00:13

Session方法Hibernate

2009-09-28 15:14:45

Hibernate S

2009-09-27 14:53:38

Hibernate S

2009-09-24 16:13:05

Hibernate S
点赞
收藏

51CTO技术栈公众号