`
landmine
  • 浏览: 95175 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

HibernateDaoSupport 源码

阅读更多
想看看hibernate托管给spring的 是怎么回事,看后再发现也是ioc注入
只是个人理解 可能有误,还请牛人拍砖

package org.springframework.orm.hibernate3.support;

import org.hibernate.HibernateException;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.springframework.dao.DataAccessException;
import org.springframework.dao.DataAccessResourceFailureException;
import org.springframework.dao.support.DaoSupport;
import org.springframework.orm.hibernate3.HibernateTemplate;
import org.springframework.orm.hibernate3.SessionFactoryUtils;

public abstract class HibernateDaoSupport extends DaoSupport
{
  private HibernateTemplate hibernateTemplate;

  // set注入sessionFactory
  public final void setSessionFactory(SessionFactory paramSessionFactory)
  {
    this.hibernateTemplate = createHibernateTemplate(paramSessionFactory);
  }
  //创建HibernateTemplate 俺们就是用这个对象
  protected HibernateTemplate createHibernateTemplate(SessionFactory paramSessionFactory)
  {
    return new HibernateTemplate(paramSessionFactory);
  }

  public final SessionFactory getSessionFactory()
  {
    return ((this.hibernateTemplate != null) ? this.hibernateTemplate.getSessionFactory() : null);
  }

  public final void setHibernateTemplate(HibernateTemplate paramHibernateTemplate)
  {
    this.hibernateTemplate = paramHibernateTemplate;
  }

  public final HibernateTemplate getHibernateTemplate()
  {
    return this.hibernateTemplate;
  }

  protected final void checkDaoConfig() {
    if (this.hibernateTemplate == null)
      throw new IllegalArgumentException("'sessionFactory' or 'hibernateTemplate' is required");
  }
 //创建session
  protected final Session getSession()
    throws DataAccessResourceFailureException, IllegalStateException
  {
    return getSession(this.hibernateTemplate.isAllowCreate());
  }

  protected final Session getSession(boolean paramBoolean)
    throws DataAccessResourceFailureException, IllegalStateException
  {
    return ((!(paramBoolean)) ? SessionFactoryUtils.getSession(getSessionFactory(), false) : SessionFactoryUtils.getSession(getSessionFactory(), this.hibernateTemplate.getEntityInterceptor(), this.hibernateTemplate.getJdbcExceptionTranslator()));
  }

  protected final DataAccessException convertHibernateAccessException(HibernateException paramHibernateException)
  {
    return this.hibernateTemplate.convertHibernateAccessException(paramHibernateException);
  }

  protected final void releaseSession(Session paramSession)
  {
    SessionFactoryUtils.releaseSession(paramSession, getSessionFactory());
  }
1
1
分享到:
评论

相关推荐

    HibernateDaoSupport 源码

    Spring hibernate3. HibernateDaoSupport 源码

    HibernateDaoSupport 与@Autowired

    在Java开发领域,尤其是Spring框架的应用中,`HibernateDaoSupport`和`@Autowired`是两个非常重要的概念。它们分别代表了Hibernate对DAO层的支持以及Spring框架的依赖注入机制。接下来,我们将深入探讨这两个知识点...

    spring-orm源码

    通过阅读和理解Spring-ORM的源码,我们可以深入理解Spring如何与ORM(对象关系映射)框架进行交互,以及Spring如何简化数据访问层的开发。 1. **IoC容器与数据源** Spring的核心是IoC(Inversion of Control)容器...

    Spring,Hibernate整合源码

    4. **HibernateTemplate与HibernateDaoSupport**:Spring提供了HibernateTemplate和HibernateDaoSupport,它们为DAO层提供了便捷的操作方法,如save、update、delete、find等,同时处理了事务和异常。 5. **JPA集成...

    spring源码spring-framework-4.3.2.RELEASE

    在`org.springframework.orm`包下,可以看到针对不同ORM的适配器,如`HibernateTemplate`和`HibernateDaoSupport`。 三、Web应用支持 1. **MVC框架**:Spring MVC是Spring对Web MVC模式的实现,提供模型、视图、...

    java大作业基于SSH框架的学生成绩管理系统源码.zip

    java基于SSH框架的学生成绩管理系统源码。要求: (1) 整合Struts2、Spring和Hibernate框架 (2) 实现“登录”功能 (3) 实现“学生信息管理”功能 (4) 实现“学生成绩管理”功能 (5) 实现分页功能 目的...

    简单,高效的ssh分页源码

    该类继承自`HibernateDaoSupport`,实现了`PaginateInterface`接口,主要负责具体的分页逻辑实现: - 使用Hibernate进行数据库操作。 - 提供具体的方法实现来完成分页功能。 ### 知识点六:Hibernate分页查询实现 ...

    spring-orm-hibernate4源码

    《深入解析Spring ORM Hibernate4源码》 Spring ORM框架与Hibernate4的集成是Java开发中的常见实践,这个源码库提供了直接导入Eclipse工程的便利,让我们有机会深入了解这两个强大工具的内部工作机制。本文将围绕...

    JPA(hibernate) Dao 和 DaoSupport

    **JPA(Java Persistence API)与Hibernate:** JPA是Java平台上的一个标准,它定义了如何在Java应用中管理关系数据库。它提供了一种面向对象的方式来操作数据库,通过ORM(对象关系映射)技术将Java对象与数据库表...

    spring整合hibernate开发源码

    通过这个完整的实例源码,你可以学习到如何在实际项目中配置和使用Spring与Hibernate的整合,理解它们如何协同工作,提升你的Java开发技能。同时,这个实例也能帮助你更好地掌握Spring的依赖注入和事务管理,以及...

    重写Spring的HibernateDaoSupport 简化Dao层写法

    NULL 博文链接:https://wxinpeng.iteye.com/blog/1162157

    精通Spring+4.x++企业应用开发实战 源码

    - **Spring与Hibernate集成**:Spring的HibernateTemplate和HibernateDaoSupport类可以帮助整合Hibernate,提高ORM能力。 - **Spring与WebSocket集成**:Spring 4.x增加了对WebSocket的支持,可以创建实时双向通信...

    Java 完整SSH项目源码

    Java SSH(Struts、Spring、Hibernate)项目源码是一套基于这三个开源框架的完整应用程序示例,用于帮助开发者理解和实践企业级Java应用开发。SSH框架是Java Web开发中常用的技术栈,它们各自承担不同的职责: 1. *...

    spring_MVC源码

    弃用了struts,用spring mvc框架做了几个项目,感觉都不错,而且使用了注解方式,可以省掉一大堆配置文件。本文主要介绍使用注解方式配置的spring mvc,之前写的spring3.0 mvc和rest小例子没有介绍到数据层的内容,...

    javaee源代码ssh

    HibernateDaoSupport 是 Spring 为 Hibernate DAO(数据访问对象)层提供的一个抽象基类,它并不直接执行数据库操作,而是作为一个辅助类,帮助我们更方便地使用 HibernateTemplate。HibernateDaoSupport 主要有两个...

    hibernate5.2+SpringMVC4.3框架搭建源码

    在Spring中,可以利用`HibernateTemplate`或`HibernateDaoSupport`提供便捷的数据操作方法,或者使用`@Autowired`注解注入SessionFactory,配合`@Transactional`进行事务管理。 接着,我们创建Service层,作为业务...

    基于J2EE框架的个人博客系统项目毕业设计论文(源码和论文)

    第一章 绪论 1.1. 选题背景 这几年,许多新名词涌入我们的视野:博客、圈子、播客、WAP等。这些都预示着我们进入了一个新的互联网阶段web 2.0,它是相对web 1.0的新的一类互联网应用的总称,是一次从核心内容到外部...

    STRUTS2+HIBERNATE详细的分页实现代码详细的分页实现代码

    public class KindEntityDaoHibernate extends HibernateDaoSupport implements KindEntityDao { public List<KindEntity> getKindEntity(PageTool pageInfo) { String hql = "from KindEntity"; Query query = ...

    spring java

    `spring_integration_hibernate3_hibernateDaoSupport`和`spring_integration_hibernate3_basic`两个文件,展示了如何利用Spring的HibernateTemplate和HibernateDaoSupport类进行数据操作。这些类提供了一套简化...

    spring +hibernate +maven 的案例

    2. **Spring配置**:创建一个或多个XML配置文件(如applicationContext.xml),在这里声明Spring的bean,包括DataSource、SessionFactory、HibernateTemplate或HibernateDaoSupport等。同时,可以配置事务管理器以...

Global site tag (gtag.js) - Google Analytics