Spring与Hibernate整合(一)

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

我们整合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整合方式(二)》。

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值