Spring与Hibernate整合(一)

原创 2012年03月23日 17:01:50

  我们之所以整合框架,就是因为它们整合在一起后会工作的更好,它们为各自提供了一些操作。

我们整合Spring与Hibernate也不例外,就是因为Spring为Hibernate增加了以下内容:

  1.Spring为Hibernate的session提供了有效、容易和安全的控制。

  2.Spring控制Hibernate的SessionFactory,JDBC DataSources及其它相关资源。

  3.Spring提供了完整的事务管理。

  4.Spring对异常处理进行了封装。

 

  Spring与Hibernate的集成先要确定配置文件的配置方式,然后再根据配置方式决定编写实现类。

 

  配置文件方面,主要是需要在applicationContext-commons.xml中配置sessionFactory,事务管理器和事务(还需要提供applicationContext-beans.xml来注册各个类,见文件最后)。

 

  由于Spring对Hibernate提供了多种支持,所以它们各自就会有多种配置方式,下面就来分别讲解一下具体的配置方法。

 

  1.sessionFactory的两种配置方式

    由于Spring对Hibernate的SessionFactory,JDBC DataSources及其它相关资源进行了控制,所以可以不使用hibernate.cfg.xml,于是配置sessionFactory的两种方式诞生了:使用hibernate.cfg.xml和不使用hibernate.cfg.xml文件。

    1)使用hibernate.cfg.xml

    这种方法是比较常见的方法,就是我们编写一个hibernate.cfg.xml和一个applicationContext.xml文件。

 

    我们先来看hibernate.cfg.xml:

<hibernate-configuration>
   <session-factory>
        <property name="hibernate.connection.driver_class">oracle.jdbc.driver.OracleDriver</property>
        <property name="hibernate.connection.password">dan</property>
        <property name="hibernate.connection.url">jdbc:oracle:thin:@localhost:1521:dan</property>
        <property name="hibernate.connection.username">dan</property>
        <property name="hibernate.dialect">org.hibernate.dialect.Oracle10gDialect</property>
        <property name="hibernate.hbm2ddl.auto">update</property>

        <mappingresource="com/entity/hbm/User.hbm.xml"/>
   </session-factory>
</hibernate-configuration>


    接着我们来看applicationContext.xml的配置:

 

<!-- 配置SessionFactory-->
    <bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
        <!-- 加载hibernate.cfg.xml配置文件 -->
        <property name="configLocation">
            <value>classpath:hibernate.cfg.xml</value>
        </property>
</bean>


     2)不使用hibernate.cfg.xml

    由于spring对jdbcdatasource进行了支持,所以这种方式就相当于把hibernate.cfg.xml中的内容放到了applicationContext.xml中。

   

    注意:使用这种方法要先引入两个jar包:commons-dbcp.jar和commons-pool.jar(这两个jar包就是spring对jdbc的支持)。

   

    下面就来看一下applicationContext.xml的代码:

  

<!—使用BasicDataSource配置SessionFactory -->
    <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource"destroy-method="close">
        <property name="driverClassName" value="oracle.jdbc.driver.OracleDriver"></property>
        <property name="url" value="jdbc:oracle:thin:@localhost:1521:dan"></property>
        <property name="username" value="dan"></property>
        <property name="password" value="dan"></property>
    </bean>

    <bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
        <property name="dataSource" ref="dataSource"></property>       

        <!-- hibernate属性配置 -->
        <property name="hibernateProperties">
            <props>
                <prop key="hibernate.dialect">org.hibernate.dialect.Oracle10gDialect</prop>
                <prop key="hibernate.hbm2ddl.auto">update</prop>
            </props>
        </property>        

        <!-- 采用传统的方式的hbm.xml的方式,可以采用如下方式来简化注册hbm.xml的步骤-->
        <property name="mappingLocations">
            <list>
                <value>classpath:/com/entity/hbm/User.hbm.xml</value>
            </list>
        </property>
</bean>

  接下来会继续介绍事务的配置,请看《Spring与Hibernate整合方式(二)》。

详细解释Spring与Hibernate的整合原理

spring与hibernate的整合
  • canot
  • canot
  • 2016年01月13日 17:38
  • 4379

spring+hibernate 两种整合方式配置文件

之前的文章都是讲解springmvc+spring+mybatis 的整合,而很少有springmvc+spring+hibernate 因为工作的需要,最近在使用hibernate 所以下面我们来看...
  • QH_JAVA
  • QH_JAVA
  • 2016年07月05日 02:07
  • 14198

spring整合hibernate的两种方式

我们学过spring的同学都知道,spring可以整合其他的框架协同开发,大大的降低开发的时间和提高了效率,但是我们在配置的时候总会发生各种各样的问题,下面我记录一下我在配置的时候出现的问题和简单总结...
  • xujin_chen
  • xujin_chen
  • 2016年12月10日 11:37
  • 2950

spring整合hibernate的两种方式

spring整合hibernate 有两种方式 1、注解方式 2、xml方式实现。 两种配置方式最大的不同就是注解方式不用写O/R映射配置文件,而xml方式实现的要配置O/R的配置文件。 ...
  • Tidhy
  • Tidhy
  • 2017年05月21日 17:42
  • 251

使用Maven 整合Spring和hibernate 适合初级接触的学者

本文,主要介绍Spring 和 hibernate怎么去整合,废话就不多说了,如果不知道spring 和hibernate 是干嘛的,还请去问问度娘哈。下面开始一步一步搭建: 工具: Idea  ...
  • yulinlin_fei
  • yulinlin_fei
  • 2016年07月16日 17:16
  • 1972

spring与hibernate整合(三种方式)

Spring与Hibernate整合关键点:          1) Hibernate的SessionFactory对象交给Spring创建;          2) hibernate事务交给...
  • u014010769
  • u014010769
  • 2015年07月31日 20:33
  • 3059

Spring与Hibernate整合小细节与测试问题

Spring与Hibernate整合问题小解:Spring和Hibernate支持添加顺序;整合配合文件中配置事务:声明式事务配置;类注册的两种方式有值注入和无值注入;SessionFactory注入...
  • u013318424
  • u013318424
  • 2015年11月18日 08:33
  • 702

Spring注解整合(hibernate+mybatis) 学习笔记

Spring的注解Beans配置文件的注解对Bean文件注解; 在类上面,使用@Component(“在xml中的id”) 表示注册一个Bean@Resource private Session...
  • dartagnan_wang
  • dartagnan_wang
  • 2015年09月21日 00:07
  • 2212

Spring 整合 Hibernate(注解方式)

spring整合Hibernate其实就是Spring来管理Hibernate的SessionFactory,以及配置事务的操作。 在Hibernate的配置文件中只有一个SessionFactory...
  • Julyraining
  • Julyraining
  • 2015年12月08日 19:47
  • 1796

spring整合hibernate配置文件

Spring对hibernate配置文件hibernate.cfg.xml的集成,来取代hibernate.cfg.xml的配置 spring对hibernate配置文件hibernate.cf...
  • shipeng22022
  • shipeng22022
  • 2014年03月10日 10:19
  • 12735
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Spring与Hibernate整合(一)
举报原因:
原因补充:

(最多只允许输入30个字)