`

spring整合hibernate初步

阅读更多

 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的声明式事务管理是通过Spring AOP实现的,因为事务方面的代码与Spring绑定并以一种样板式风格使用,不过尽管如此,你一般并不需要理解AOP概念就可以有效地使用Spirng的声明式事务管理。

 

注:具体参考一下《Spring Framework 开发参考手册》声明式事务管理
Spring2.0及以后的版本中声明式事务的配置与之前的版本有相当大的不同。主要差异在于不再需要配置TransactionProxyFactoryBean了。

Spring2.0之前的旧版本风格的配置仍然是有效的;你可以简单地认为新的<tx:tags/>替你定义了TransactionProxyFactoryBean。

 

分享到:
评论

相关推荐

    spring整合hibernate示例代码

    标题"spring整合hibernate示例代码"提示我们,我们将讨论如何在实际项目中结合这两个框架。Spring可以帮助管理Hibernate的SessionFactory和Transaction,提供声明式事务管理,以及通过AOP(面向切面编程)实现更灵活...

    MyEclipse图文整合SSH,Struts2+Spring+Hibernate整合过程详解

    Struts2+Spring+Hibernate(SSH)框架的整合是Java Web开发中常见的一种技术组合,它们各自具有独特的优势,能够高效地处理Web应用程序中的模型、视图和控制,以及对象持久化和依赖注入。以下是对Struts2、Spring、...

    开发基于Struts Spring Hibernate Ajax的网上信息发布平台(Struts Hibernate Spring Ajax)--Chapter1

    同时,会讲解如何整合Spring以管理依赖和事务。最后,我们将引入Ajax,实现初步的客户端交互功能。 在这个过程中,你将学习到如何使用Struts的拦截器来添加全局行为,如登录验证;如何利用Spring的AOP进行权限控制...

    spring3.2+hibernate4.0整合

    Spring3.2与Hibernate4.0的整合是许多开发者在构建现代Java Web应用时会选择的技术栈,因为它们可以提供强大的依赖注入、事务管理以及持久化能力。下面将详细阐述这两个框架的整合过程及其相关知识点。 **Spring...

    轻量级J2EE企业应用实战——Struts+Spring+Hibernate整合开发 源码第一部分

    【标题】"轻量级J2EE企业应用实战——Struts+Spring+Hibernate整合开发 源码第一部分"指的是一个教程或者项目实践,旨在帮助开发者掌握如何在J2EE环境中整合三大主流开源框架:Struts、Spring和Hibernate。...

    spring+hibernate

    本文将深入探讨Spring+Hibernate整合的基础知识,以及如何进行初步学习。 首先,Spring框架以其依赖注入(Dependency Injection,DI)和面向切面编程(Aspect-Oriented Programming,AOP)为核心,简化了Java应用的...

    轻量级J2EE 企业应用实战 Struts+Spring+Hibernate整合开发

    ### 轻量级J2EE企业应用实战:Struts+Spring+Hibernate整合开发 #### 知识点概述 本书是一本深入浅出讲解轻量级J2EE应用开发的著作,作者通过多年的实践经验总结了关于Struts、Hibernate、Spring三大开源框架的...

    spring3.0.2+hibernate

    在与Spring和Hibernate整合的项目中,前端通常负责用户界面和初步的数据验证,而与后端的通信则通过Ajax或JSON进行。 3. spring3.0.2+hibernate:这个文件名可能表示项目或教程的主文件,或者是一个包含配置信息的...

    struts+spring+hibernate 实例

    SSH(Struts + Spring + Hibernate)是一种经典的Java Web开发框架组合,用于构建企业级的Web应用程序。本实例旨在介绍如何通过SSH整合实现对数据库的基本操作,如向数据库中添加数据。 首先,我们需要搭建环境。在...

    輕量級 J2EE 企業應用實戰:Struts+Spring+Hibernate整合開發 (第一部分)

    輕量級 J2EE 企業應用實戰:Struts+Spring+Hibernate整合開發 本书所介绍的内容是作者多年J2EE 开发经验的总结,内容涉及Struts 、Hibernate 和Spring 三个开源 框架,还介绍了Tomcat 和Jetty 两个开源Web ...

    輕量級 J2EE 企業應用實戰:Struts+Spring+Hibernate整合開發 (第三部分)

    輕量級 J2EE 企業應用實戰:Struts+Spring+Hibernate整合開發 本书所介绍的内容是作者多年J2EE 开发经验的总结,内容涉及Struts 、Hibernate 和Spring 三个开源 框架,还介绍了Tomcat 和Jetty 两个开源Web ...

    輕量級 J2EE 企業應用實戰:Struts+Spring+Hibernate整合開發 (第二部分)

    輕量級 J2EE 企業應用實戰:Struts+Spring+Hibernate整合開發 &lt;br&gt;本书所介绍的内容是作者多年J2EE 开发经验的总结,内容涉及Struts 、Hibernate 和Spring 三个开源 框架,还介绍了Tomcat 和Jetty 两个开源Web...

    sturts2+spring+hibernate+dwr2

    结合上述四个框架,"sturts2+spring+hibernate+dwr2例子"很可能是展示如何在实际项目中整合这些技术的一个示例应用。"springch01"这个文件名可能代表了关于Spring的初步章节或者配置文件,包含了Spring容器的配置,...

    struts spring hibernate myeclipse 的 login Demo

    总的来说,这个Demo展示了如何整合Struts、Spring和Hibernate来实现一个登录功能,同时利用MyEclipse提高开发效率。通过学习这个Demo,开发者可以了解如何在实际项目中运用这些技术,提升自己的Java Web开发能力。

    轻量级J2EE企业应用实战:Struts+Spring+Hibernate 整合开发.part1

    本书所介绍的内容是作者多年J2EE开发经验的总结,内容涉及三个开源框架:Struts、Hibernate和Spring,还介绍了Tomcat和Jetty两个开源Web服务器的详细用法,以及J2EE应用的几种常用架构。  本书不仅仅是一本J2EE...

    轻量级J2EE企业应用实战:Struts+Spring+Hibernate 整合开发.part2

    本书所介绍的内容是作者多年J2EE开发经验的总结,内容涉及三个开源框架:Struts、Hibernate和Spring,还介绍了Tomcat和Jetty两个开源Web服务器的详细用法,以及J2EE应用的几种常用架构。  本书不仅仅是一本J2EE...

    轻量级J2EE企业应用实战:Struts+Spring+Hibernate 整合开发.part3

    本书所介绍的内容是作者多年J2EE开发经验的总结,内容涉及三个开源框架:Struts、Hibernate和Spring,还介绍了Tomcat和Jetty两个开源Web服务器的详细用法,以及J2EE应用的几种常用架构。  本书不仅仅是一本J2EE...

    轻量级 J2EE 企业应用实战:Struts+Spring+Hibernate 整合开发.part2.rar

    本书所介绍的内容是作者多年J2EE开发经验的总结,内容涉及三个开源框架:Struts、Hibernate和Spring,还介绍了Tomcat和Jetty两个开源Web服务器的详细用法,以及J2EE应用的几种常用架构。  本书不仅仅是一本J2EE...

Global site tag (gtag.js) - Google Analytics