歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux編程 >> Linux編程

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:

  1. <hibernate-configuration>  
  2.    <session-factory>  
  3.         <property name="hibernate.connection.driver_class">Oracle.jdbc.driver.OracleDriver</property>  
  4.         <property name="hibernate.connection.password">dan</property>  
  5.         <property name="hibernate.connection.url">jdbc:oracle:thin:@localhost:1521:dan</property>  
  6.         <property name="hibernate.connection.username">dan</property>  
  7.         <property name="hibernate.dialect">org.hibernate.dialect.Oracle10gDialect</property>  
  8.         <property name="hibernate.hbm2ddl.auto">update</property>  
  9.   
  10.         <mappingresourcemappingresource="com/entity/hbm/User.hbm.xml"/>  
  11.    </session-factory>  
  12. </hibernate-configuration>  

    接著我們來看applicationContext.xml的配置:

  1. <!-- 配置SessionFactory-->  
  2.     <bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">  
  3.         <!-- 加載hibernate.cfg.xml配置文件 -->  
  4.         <property name="configLocation">  
  5.             <value>classpath:hibernate.cfg.xml</value>  
  6.         </property>  
  7. </bean>  


     2)不使用hibernate.cfg.xml

    由於spring對jdbcdatasource進行了支持,所以這種方式就相當於把hibernate.cfg.xml中的內容放到了applicationContext.xml中。   

    注意:使用這種方法要先引入兩個jar包:commons-dbcp.jar和commons-pool.jar(這兩個jar包就是spring對jdbc的支持)。   

    下面就來看一下applicationContext.xml的代碼:  

  1. <!—使用BasicDataSource配置SessionFactory -->  
  2.     <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource"destroy-method="close">  
  3.         <property name="driverClassName" value="oracle.jdbc.driver.OracleDriver"></property>  
  4.         <property name="url" value="jdbc:oracle:thin:@localhost:1521:dan"></property>  
  5.         <property name="username" value="dan"></property>  
  6.         <property name="password" value="dan"></property>  
  7.     </bean>  
  8.   
  9.     <bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">  
  10.         <property name="dataSource" ref="dataSource"></property>         
  11.   
  12.         <!-- hibernate屬性配置 -->  
  13.         <property name="hibernateProperties">  
  14.             <props>  
  15.                 <prop key="hibernate.dialect">org.hibernate.dialect.Oracle10gDialect</prop>  
  16.                 <prop key="hibernate.hbm2ddl.auto">update</prop>  
  17.             </props>  
  18.         </property>          
  19.   
  20.         <!-- 采用傳統的方式的hbm.xml的方式,可以采用如下方式來簡化注冊hbm.xml的步驟-->  
  21.         <property name="mappingLocations">  
  22.             <list>  
  23.                 <value>classpath:/com/entity/hbm/User.hbm.xml</value>  
  24.             </list>  
  25.         </property>  
  26. </bean>  

  接下來會繼續介紹事務的配置,請看《Spring與Hibernate整合方式(二)》。http://www.linuxidc.com/Linux/2012-03/57452p2.htm

Copyright © Linux教程網 All Rights Reserved