Spring与Hibernate整合(一)
来源:互联网 发布:北京师范大学 知乎 编辑:程序博客网 时间:2024/05/17 22:46
我们之所以整合框架,就是因为它们整合在一起后会工作的更好,它们为各自提供了一些操作。
我们整合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与Struts整合(一)配置文件
- 【Spring】Spring与Hibernate整合(十六)
- spring与hibernate整合
- Spring与Hibernate整合
- hibernate 与spring 整合
- Spring与Hibernate整合
- spring与hibernate整合
- Spring 与Hibernate 整合
- Spring与Hibernate整合
- Spring与Hibernate整合
- Spring与HIbernate整合
- Spring与Hibernate整合
- Spring与Hibernate整合
- Spring与Hibernate整合
- Spring与Hibernate整合
- hibernate与spring整合
- Spring与Hibernate整合
- shell数组小结
- 创建你的第一个Gem
- 如何调试QRFC
- 四个零算二十四点
- memcached 常用信息
- Spring与Hibernate整合(一)
- 产品设计5个减少
- My top ten list for a successful test automation strategy
- SGU 107 987654321 problem
- 决心入门者:S3C2410bootloader 之2410Init.s详解二
- android系统PS2全键盘驱动(中)-使用input_event实现
- Spring与Hibernate整合(二)
- Solaris系统/proc/目录简介
- Struts使用convention-plugin实现零配置