整合教程:Hibernate3.5.5与Spring3.0.4实战

需积分: 3 26 下载量 175 浏览量 更新于2024-10-15 收藏 60KB DOC 举报
"本文介绍了如何将hibernate3.5.5与spring3.0.4框架进行整合,包括所需的jar包以及一个简单的实体类示例。" 在Java开发中,Hibernate和Spring是两个非常重要的开源框架,分别用于对象关系映射(ORM)和依赖注入(DI)。将两者整合可以使得应用的持久层操作更加便捷,同时利用Spring的管理能力来更好地控制事务和数据库连接。以下是hibernate3.5.5与spring3.0.4整合的具体步骤和关键知识点: 1. 添加必要的库文件 - 首先,你需要确保项目中包含了所有必需的jar包。对于Hibernate,这包括`hibernate3.jar`和`lib\required`目录下的所有jar包,比如用于JPA支持的`hibernate-entitymanager.jar`等。对于Spring,你需要`spring-context`, `spring-beans`, `spring-core`, `spring-expression`, `spring-jdbc`, `spring-orm`, `spring-tx`等核心模块的jar文件,以及与数据库相关的驱动,如MySQL的`mysql-connector-java-5.1.10-bin.jar`。 2. 配置Spring的Hibernate支持 - 在Spring的配置文件(通常命名为`applicationContext.xml`)中,你需要声明一个`SessionFactory` bean,这是Hibernate的核心组件,它负责管理会话。例如: ```xml <bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean"> <property name="dataSource" ref="dataSource"/> <property name="configLocation" value="classpath:hibernate.cfg.xml"/> <property name="configurationClass" value="org.hibernate.cfg.AnnotationConfiguration"/> </bean> ``` 这里,`dataSource`引用了数据源,`configLocation`指定了Hibernate配置文件的位置,`configurationClass`说明使用的是基于注解的配置。 3. 配置数据源 - 数据源是连接到数据库的关键,你可以使用Spring的`BasicDataSource`或其他第三方数据源如Apache DBCP。例如: ```xml <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close"> <property name="driverClassName" value="com.mysql.jdbc.Driver"/> <property name="url" value="jdbc:mysql://localhost:3306/test"/> <property name="username" value="root"/> <property name="password" value="password"/> </bean> ``` 4. 配置事务管理器 - Spring提供了一种声明式事务管理,使得在服务层方法上添加`@Transactional`注解就能自动处理事务。配置如下: ```xml <bean id="transactionManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager"> <property name="sessionFactory" ref="sessionFactory"/> </bean> ``` 5. 定义实体类和注解 - 例如,你创建了一个名为`Person`的实体类,使用JPA注解进行配置,如`@Entity`, `@Table`, `@Id`, `@GeneratedValue`等。这样,Hibernate可以自动将这些类映射到数据库表。 ```java package com.armada.module; import javax.persistence.*; import java.io.Serializable; @Entity @Table(name="PERSON") public class Person implements Serializable { @Id @GeneratedValue(strategy=GenerationType.AUTO) private Long id; @Column(name="NAME") private String name; // getters and setters } ``` 6. 使用SessionFactory和Session - 在你的业务逻辑代码中,可以通过Spring的`SessionFactory` bean获取`Session`实例,然后进行CRUD操作。不过,由于已经配置了Spring的事务管理,你通常不需要直接操作`Session`,而是通过`HibernateTemplate`或`HibernateDaoSupport`等工具类。 7. 整合测试 - 编写测试用例,验证整合后的配置是否正确,数据库操作是否按预期执行。使用`@Transactional`注解确保每个测试方法都在一个新的事务中运行。 通过以上步骤,你便成功地完成了hibernate3.5.5与spring3.0.4的整合。这种整合有助于简化数据访问层的代码,提高代码的可维护性和可测试性,并利用Spring的强大功能来管理事务和依赖关系。