`

Hibernate中HibernateDaoSupport 的源码

阅读更多

从网上找的hibernate源码

 

         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;
 
 
     public final void setSessionFactory(SessionFactory sessionFactory) {
       this.hibernateTemplate = createHibernateTemplate(sessionFactory);
     }
 
    
     protected HibernateTemplate createHibernateTemplate(SessionFactory sessionFactory) {
         return new HibernateTemplate(sessionFactory);
     }
 
     public final SessionFactory getSessionFactory() {
         return (this.hibernateTemplate != null ? this.hibernateTemplate.getSessionFactory() : null);
     }
 
    
     public final void setHibernateTemplate(HibernateTemplate hibernateTemplate) {
         this.hibernateTemplate = hibernateTemplate;
     }
 
     
     public final HibernateTemplate getHibernateTemplate() {
       return this.hibernateTemplate;
     }
 
     protected final void checkDaoConfig() {
         if (this.hibernateTemplate == null) {
             throw new IllegalArgumentException("'sessionFactory' or 'hibernateTemplate' is required");
         }
     }
 
 
     protected final Session getSession()
         throws DataAccessResourceFailureException, IllegalStateException {
 
         return getSession(this.hibernateTemplate.isAllowCreate());
     }
 
     protected final Session getSession(boolean allowCreate)
         throws DataAccessResourceFailureException, IllegalStateException {
 
         return (!allowCreate ?
             SessionFactoryUtils.getSession(getSessionFactory(), false) :
                 SessionFactoryUtils.getSession(
                         getSessionFactory(),
                         this.hibernateTemplate.getEntityInterceptor(),
                         this.hibernateTemplate.getJdbcExceptionTranslator()));
     }
 
    
     protected final DataAccessException convertHibernateAccessException(HibernateException ex) {
         return this.hibernateTemplate.convertHibernateAccessException(ex);
     }
 
     protected final void releaseSession(Session session) {
         SessionFactoryUtils.releaseSession(session, getSessionFactory());
     }
 
 }



分享到:
评论

相关推荐

    HibernateDaoSupport 源码

    Spring hibernate3. HibernateDaoSupport 源码

    Spring,Hibernate整合源码

    在IT行业中,Spring和Hibernate是两个非常重要的框架,它们分别在应用层管理和数据持久化方面发挥着关键作用。Spring是一个全面的Java企业级应用开发框架,而Hibernate则是一个优秀的对象关系映射(ORM)框架。当这...

    spring-orm-hibernate4源码

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

    spring整合hibernate开发源码

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

    HibernateDaoSupport 与@Autowired

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

    JPA(hibernate) Dao 和 DaoSupport

    在JPA和Hibernate中,可以使用`Page`或`Slice`接口(Spring Data提供)来实现分页查询,这些接口允许你指定页码和每页大小,返回结果包含当前页的数据以及总页数等信息。 2. **PageIndex.java** - 这个类可能是用于...

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

    下面是一个简化的示例代码片段,展示了如何在Struts2和Hibernate中实现分页功能: ```java // PageTool类定义 public class PageTool { private int pageNum; // 当前页码 private int pageSize; // 每页显示记录...

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

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

    spring +hibernate +maven 的案例

    在IT行业中,Spring、Hibernate和Maven是三个非常重要的开源框架和工具,它们在构建现代Java企业级应用中起着核心作用。让我们深入探讨一下这三个技术及其在项目中的结合使用。 **Spring框架** 是一个全面的Java...

    spring-orm源码

    源码中可以看到这些类如何包装和暴露基本的Hibernate操作。 4. **SessionFactory和Session** 在Hibernate中,SessionFactory是线程安全的,用于创建Session实例。Spring-ORM通过SessionFactoryBean来创建...

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

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

    Spring2 Hibernate3集成

    - **Hibernate框架**:作为一个开放源码的对象关系映射(ORM)解决方案,Hibernate提供了从Java类到数据库表的映射,以及从Java数据类型到SQL类型的映射。这种自动化处理大大减少了开发者在持久层方面的编码工作。 ...

    Hibernate和spring集成

    集成Hibernate和Spring需要在Spring的配置文件中配置Hibernate的相关信息,包括SessionFactory、DataSource等。例如,通过`<bean>`标签定义数据源、SessionFactory,并使用`<tx:annotation-driven>`开启基于注解的...

    spring与hibernate的包冲突

    如果这些组件在初始化时发生冲突,可能需要调整初始化顺序或使用Spring的Hibernate整合模块(HibernateTemplate或HibernateDaoSupport)来统一管理。 在工具方面,IDEA或Eclipse等集成开发环境提供了依赖树视图,...

    spring3.0+hibernate3.5整合那些事儿

    本文将深入探讨"Spring 3.0 + Hibernate 3.5整合那些事儿",结合给出的标签"源码"和"工具",我们将讨论如何将这两个强大的框架结合在一起,以及在整合过程中可能遇到的问题和解决方案。 首先,Spring是一个全面的...

    some simple demo about hibernate3.2 and spring2.5

    3. **HibernateDaoSupport**: Spring提供此基类,方便DAO层集成Hibernate,提供SessionFactory的自动注入。 **文件名解析**: - "Hiber"可能包含Hibernate的相关配置文件(如hibernate.cfg.xml)和实体类。 - ...

    hibernate3.5与spring2.5.5整合最佳实践

    - 最佳实践中,推荐使用HibernateTemplate或者HibernateDaoSupport,它们是Spring提供的对Hibernate的简单包装,可以避免手动管理Session和事务。 7. **测试与优化** - 使用JUnit进行单元测试,验证整合是否成功...

    spring4集成hibernate3:xml方式

    在IT行业中,Spring框架与Hibernate的集成是常见的数据访问技术组合,它们可以帮助开发者构建高效、模块化的应用程序。本文将深入探讨如何在Spring 4中集成Hibernate 3,以XML配置方式进行,这是一种相对传统但仍然...

    Hibernate编程式事务与Spring Aop的声明式事务(spring与hibernate集成)

    本主题将深入探讨Hibernate的编程式事务管理和Spring AOP的声明式事务管理,以及两者如何在实际项目中集成使用。 **Hibernate编程式事务管理** Hibernate作为流行的ORM(对象关系映射)框架,提供了对JDBC事务的...

    Java 完整SSH项目源码

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

Global site tag (gtag.js) - Google Analytics