Hibernate 和 spring 整合使用

在hibernate和spring时总结的一些知识,以供将来查询和使用。

spring针对hibernate的整合做了许多的努力,当我们使用spring时,对hibernate的使用变得更加简单。

hibernate通过sessionFactory创建session,spring对hibernate进行了无缝的整合,无需自己写代码实现通过Configuration.buildSessionFactory()来创建一个SessionFactory.较为流行的做法是在applicationContext中注册工厂bean为一个单例,然后程序通过依赖注入的方式引用SessionFactory的实现.配置SessionFactory也有多种方式实现。

一、dataSource方式

配置文件:

  
<bean id="dataSource"        class="org.springframework.jdbc.datasource.DriverManagerDataSource">
       <property name="driverClassName">
          <value>com.mysql.jdbc.Driver</value>
       </property>
       <property name="url">
          <value>jdbc:mysql://127.0.0.1:3306/test</value>
       </property>
       <property name="userName">
          <value>root</value>
       </property>
       <property name="password">
          <value>root</value>
       </property>
     </bean>
      <bean id="sessionFactory"        class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
      <property name="dataSource">
          <value>dataSource</value>
       </property>
       <property name="mappingResources">
         <list>
             <value>com/test/entity/test.hbm.xml</value>
         </list>
       </property>
      </bean>

二、使用原系统的hibernate的配置文件

     
<bean id="sessionFactory"        class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
          <property name="configLocation">
            <value>classPath:cn/com/hibernate.cfg.xml</value>
          </property>
        </bean>

如果我们系统十分庞大的时候,实体的配置文件会逐渐增多,如果继续往配置文件里增加映射文件会使得配置文件十分庞大。这个时候使用mappingDirectoryLocations来配置程序中的一个路径,spring会加载此路径下所有的hbm文件

配置文件

  
<bean id="sessionFactory"        class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
          <property name="mappingDirectoryLocations">
            <value>classPath:cn/com/entity</value>
          </property>
        </bean>

在整个java世界中实现相同的功能,有各种各样的实现方式,但是我们需要根据我们当时所处的环境,综合考虑各种实现的利弊,选择在当前环境下,较为合适的一种

相关推荐