歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux編程 >> Linux編程 >> Spring與Hibernate整合

Spring與Hibernate整合

日期:2017/3/1 10:25:47   编辑:Linux編程
我們之所以整合框架,就是因為它們整合在一起後會工作的更好,它們為各自提供了一些操作。

我們整合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. <mappingresourcemappingresource="com/entity/hbm/User.hbm.xml"/>
  10. </session-factory>
  11. </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. <bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
  9. <property name="dataSource" ref="dataSource"></property>
  10. <!-- hibernate屬性配置 -->
  11. <property name="hibernateProperties">
  12. <props>
  13. <prop key="hibernate.dialect">org.hibernate.dialect.Oracle10gDialect</prop>
  14. <prop key="hibernate.hbm2ddl.auto">update</prop>
  15. </props>
  16. </property>
  17. <!-- 采用傳統的方式的hbm.xml的方式,可以采用如下方式來簡化注冊hbm.xml的步驟-->
  18. <property name="mappingLocations">
  19. <list>
  20. <value>classpath:/com/entity/hbm/User.hbm.xml</value>
  21. </list>
  22. </property>
  23. </bean>

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

Copyright © Linux教程網 All Rights Reserved