spring和hibernate整合时,SessionFactory底层的DataSource可以使用spring的ioc注入,然后你在自己的程序中注入SessionFactory
<bean id="sessionFactory"
class="org.springframework.orm.hibernate3.LocalSessionFactoryBean"
destroy-method="close">
<!--将数据源注入 LocalSessionFactoryBean(建立hibernate中的sessionfactory的bean工厂,fw里用的是AnnotationSessionFactoryBean) -->
<property name="dataSource" ref="dataSource" />
........
</bean>
<bean id="dataSource"
class="org.springframework.jdbc.datasource.DriverManagerDataSource">
<property name="driverClassName" value="com.mysql.jdbc.Driver" />
<property name="url"
value="jdbc:mysql://localhost:3306/helloworld" />
<property name="username" value="root" />
<property name="password" value="root" />
</bean>
使用HibernateTemplate
public class UserDao implements IUserDao {
HibernateTemplate hibernateTemplate;
public UserDao() {
}
public UserDao(SessionFactory sessionFactory) {
this.setSessionFactory(sessionFactory);
}
public void setSessionFactory(SessionFactory sessionFactory) {
this.hibernateTemplate = new HibernateTemplate(sessionFactory);
}
public void insert(User user) {
hibernateTemplate.save(user);
}
public User find(Integer id) {
User user = (User)hibernateTemplate.get(User.class,id);
return user;
}
}
使用HibernateDaoSupport
使用HibernateDaoSupport可以简化你管理SessionFactory、HibernateTemplate的工作,因为在HibernateDaoSupport中帮你管理了 SessionFactory、HibernateTemplate ,你只要继承它就ok了
HibernateDaoSupport源代码:
/**
* Set the Hibernate SessionFactory to be used by this DAO.
* Will automatically create a HibernateTemplate for the given SessionFactory.
*/
public final void setSessionFactory(SessionFactory sessionFactory) {
this.hibernateTemplate = createHibernateTemplate(sessionFactory);
}
protected HibernateTemplate createHibernateTemplate(SessionFactory sessionFactory) {
return new HibernateTemplate(sessionFactory);
}
Hibernate提供自己的事务管理实现 ,但和spring整合时建议将事务管理交spring来负责,spring提供了:编程式事务管理、声明式事务管理。
Spring的声明式事务管理是通过Spring AOP实现的,因为事务方面的代码与Spring绑定并以一种样板式风格使用,不过尽管如此,你一般并不需要理解AOP概念就可以有效地使用Spirng的声明式事务管理。
注:具体参考一下《Spring Framework 开发参考手册》声明式事务管理
Spring2.0及以后的版本中声明式事务的配置与之前的版本有相当大的不同。主要差异在于不再需要配置TransactionProxyFactoryBean了。
Spring2.0之前的旧版本风格的配置仍然是有效的;你可以简单地认为新的<tx:tags/>替你定义了TransactionProxyFactoryBean。
分享到:
相关推荐
标题"spring整合hibernate示例代码"提示我们,我们将讨论如何在实际项目中结合这两个框架。Spring可以帮助管理Hibernate的SessionFactory和Transaction,提供声明式事务管理,以及通过AOP(面向切面编程)实现更灵活...
Struts2+Spring+Hibernate(SSH)框架的整合是Java Web开发中常见的一种技术组合,它们各自具有独特的优势,能够高效地处理Web应用程序中的模型、视图和控制,以及对象持久化和依赖注入。以下是对Struts2、Spring、...
同时,会讲解如何整合Spring以管理依赖和事务。最后,我们将引入Ajax,实现初步的客户端交互功能。 在这个过程中,你将学习到如何使用Struts的拦截器来添加全局行为,如登录验证;如何利用Spring的AOP进行权限控制...
Spring3.2与Hibernate4.0的整合是许多开发者在构建现代Java Web应用时会选择的技术栈,因为它们可以提供强大的依赖注入、事务管理以及持久化能力。下面将详细阐述这两个框架的整合过程及其相关知识点。 **Spring...
【标题】"轻量级J2EE企业应用实战——Struts+Spring+Hibernate整合开发 源码第一部分"指的是一个教程或者项目实践,旨在帮助开发者掌握如何在J2EE环境中整合三大主流开源框架:Struts、Spring和Hibernate。...
本文将深入探讨Spring+Hibernate整合的基础知识,以及如何进行初步学习。 首先,Spring框架以其依赖注入(Dependency Injection,DI)和面向切面编程(Aspect-Oriented Programming,AOP)为核心,简化了Java应用的...
### 轻量级J2EE企业应用实战:Struts+Spring+Hibernate整合开发 #### 知识点概述 本书是一本深入浅出讲解轻量级J2EE应用开发的著作,作者通过多年的实践经验总结了关于Struts、Hibernate、Spring三大开源框架的...
在与Spring和Hibernate整合的项目中,前端通常负责用户界面和初步的数据验证,而与后端的通信则通过Ajax或JSON进行。 3. spring3.0.2+hibernate:这个文件名可能表示项目或教程的主文件,或者是一个包含配置信息的...
SSH(Struts + Spring + Hibernate)是一种经典的Java Web开发框架组合,用于构建企业级的Web应用程序。本实例旨在介绍如何通过SSH整合实现对数据库的基本操作,如向数据库中添加数据。 首先,我们需要搭建环境。在...
輕量級 J2EE 企業應用實戰:Struts+Spring+Hibernate整合開發 本书所介绍的内容是作者多年J2EE 开发经验的总结,内容涉及Struts 、Hibernate 和Spring 三个开源 框架,还介绍了Tomcat 和Jetty 两个开源Web ...
輕量級 J2EE 企業應用實戰:Struts+Spring+Hibernate整合開發 本书所介绍的内容是作者多年J2EE 开发经验的总结,内容涉及Struts 、Hibernate 和Spring 三个开源 框架,还介绍了Tomcat 和Jetty 两个开源Web ...
輕量級 J2EE 企業應用實戰:Struts+Spring+Hibernate整合開發 <br>本书所介绍的内容是作者多年J2EE 开发经验的总结,内容涉及Struts 、Hibernate 和Spring 三个开源 框架,还介绍了Tomcat 和Jetty 两个开源Web...
结合上述四个框架,"sturts2+spring+hibernate+dwr2例子"很可能是展示如何在实际项目中整合这些技术的一个示例应用。"springch01"这个文件名可能代表了关于Spring的初步章节或者配置文件,包含了Spring容器的配置,...
总的来说,这个Demo展示了如何整合Struts、Spring和Hibernate来实现一个登录功能,同时利用MyEclipse提高开发效率。通过学习这个Demo,开发者可以了解如何在实际项目中运用这些技术,提升自己的Java Web开发能力。
本书所介绍的内容是作者多年J2EE开发经验的总结,内容涉及三个开源框架:Struts、Hibernate和Spring,还介绍了Tomcat和Jetty两个开源Web服务器的详细用法,以及J2EE应用的几种常用架构。 本书不仅仅是一本J2EE...
本书所介绍的内容是作者多年J2EE开发经验的总结,内容涉及三个开源框架:Struts、Hibernate和Spring,还介绍了Tomcat和Jetty两个开源Web服务器的详细用法,以及J2EE应用的几种常用架构。 本书不仅仅是一本J2EE...
本书所介绍的内容是作者多年J2EE开发经验的总结,内容涉及三个开源框架:Struts、Hibernate和Spring,还介绍了Tomcat和Jetty两个开源Web服务器的详细用法,以及J2EE应用的几种常用架构。 本书不仅仅是一本J2EE...
本书所介绍的内容是作者多年J2EE开发经验的总结,内容涉及三个开源框架:Struts、Hibernate和Spring,还介绍了Tomcat和Jetty两个开源Web服务器的详细用法,以及J2EE应用的几种常用架构。 本书不仅仅是一本J2EE...