想看看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());
}
分享到:
相关推荐
Spring hibernate3. HibernateDaoSupport 源码
在Java开发领域,尤其是Spring框架的应用中,`HibernateDaoSupport`和`@Autowired`是两个非常重要的概念。它们分别代表了Hibernate对DAO层的支持以及Spring框架的依赖注入机制。接下来,我们将深入探讨这两个知识点...
通过阅读和理解Spring-ORM的源码,我们可以深入理解Spring如何与ORM(对象关系映射)框架进行交互,以及Spring如何简化数据访问层的开发。 1. **IoC容器与数据源** Spring的核心是IoC(Inversion of Control)容器...
4. **HibernateTemplate与HibernateDaoSupport**:Spring提供了HibernateTemplate和HibernateDaoSupport,它们为DAO层提供了便捷的操作方法,如save、update、delete、find等,同时处理了事务和异常。 5. **JPA集成...
在`org.springframework.orm`包下,可以看到针对不同ORM的适配器,如`HibernateTemplate`和`HibernateDaoSupport`。 三、Web应用支持 1. **MVC框架**:Spring MVC是Spring对Web MVC模式的实现,提供模型、视图、...
java基于SSH框架的学生成绩管理系统源码。要求: (1) 整合Struts2、Spring和Hibernate框架 (2) 实现“登录”功能 (3) 实现“学生信息管理”功能 (4) 实现“学生成绩管理”功能 (5) 实现分页功能 目的...
该类继承自`HibernateDaoSupport`,实现了`PaginateInterface`接口,主要负责具体的分页逻辑实现: - 使用Hibernate进行数据库操作。 - 提供具体的方法实现来完成分页功能。 ### 知识点六:Hibernate分页查询实现 ...
《深入解析Spring ORM Hibernate4源码》 Spring ORM框架与Hibernate4的集成是Java开发中的常见实践,这个源码库提供了直接导入Eclipse工程的便利,让我们有机会深入了解这两个强大工具的内部工作机制。本文将围绕...
**JPA(Java Persistence API)与Hibernate:** JPA是Java平台上的一个标准,它定义了如何在Java应用中管理关系数据库。它提供了一种面向对象的方式来操作数据库,通过ORM(对象关系映射)技术将Java对象与数据库表...
通过这个完整的实例源码,你可以学习到如何在实际项目中配置和使用Spring与Hibernate的整合,理解它们如何协同工作,提升你的Java开发技能。同时,这个实例也能帮助你更好地掌握Spring的依赖注入和事务管理,以及...
NULL 博文链接:https://wxinpeng.iteye.com/blog/1162157
- **Spring与Hibernate集成**:Spring的HibernateTemplate和HibernateDaoSupport类可以帮助整合Hibernate,提高ORM能力。 - **Spring与WebSocket集成**:Spring 4.x增加了对WebSocket的支持,可以创建实时双向通信...
Java SSH(Struts、Spring、Hibernate)项目源码是一套基于这三个开源框架的完整应用程序示例,用于帮助开发者理解和实践企业级Java应用开发。SSH框架是Java Web开发中常用的技术栈,它们各自承担不同的职责: 1. *...
弃用了struts,用spring mvc框架做了几个项目,感觉都不错,而且使用了注解方式,可以省掉一大堆配置文件。本文主要介绍使用注解方式配置的spring mvc,之前写的spring3.0 mvc和rest小例子没有介绍到数据层的内容,...
HibernateDaoSupport 是 Spring 为 Hibernate DAO(数据访问对象)层提供的一个抽象基类,它并不直接执行数据库操作,而是作为一个辅助类,帮助我们更方便地使用 HibernateTemplate。HibernateDaoSupport 主要有两个...
在Spring中,可以利用`HibernateTemplate`或`HibernateDaoSupport`提供便捷的数据操作方法,或者使用`@Autowired`注解注入SessionFactory,配合`@Transactional`进行事务管理。 接着,我们创建Service层,作为业务...
第一章 绪论 1.1. 选题背景 这几年,许多新名词涌入我们的视野:博客、圈子、播客、WAP等。这些都预示着我们进入了一个新的互联网阶段web 2.0,它是相对web 1.0的新的一类互联网应用的总称,是一次从核心内容到外部...
public class KindEntityDaoHibernate extends HibernateDaoSupport implements KindEntityDao { public List<KindEntity> getKindEntity(PageTool pageInfo) { String hql = "from KindEntity"; Query query = ...
`spring_integration_hibernate3_hibernateDaoSupport`和`spring_integration_hibernate3_basic`两个文件,展示了如何利用Spring的HibernateTemplate和HibernateDaoSupport类进行数据操作。这些类提供了一套简化...
2. **Spring配置**:创建一个或多个XML配置文件(如applicationContext.xml),在这里声明Spring的bean,包括DataSource、SessionFactory、HibernateTemplate或HibernateDaoSupport等。同时,可以配置事务管理器以...