原文: https://howtodoinjava.com/spring-orm/spring3-hibernate4-integration-example/

如果您浏览了我以前的文章,该文章也是同一主题,即 Spring 3 + Hibernate 集成 。 我在那篇文章中收到了很多评论和反馈,其中大部分是因为人们试图在现有项目中使用代码/依赖关系,或者他们没有使用 Maven 来构建项目。

在这两种情况下,正确识别和使用项目依赖项仍然是主要挑战。 因此,我决定写另一篇根本不使用 Maven 的文章。 如果确实如此,我已经在项目源代码本身中添加了所有必需的 jar 文件。

此外,我具有 Spring 的最新版本,即 3.0.5 至 3.2.5.RELEASE。

下载源码

1. 开发环境

  1. Eclipse Juno RELEASE
  2. JDK 1.6
  3. Hibernate 4.0.1
  4. Spring 3.2.5.RELEASE
  5. MySQL 数据库
  6. Tomcat 7

对于那些直接来到本文的人,让我们逐步讲解 Spring Hibernate 集成示例

2. 数据库架构

在开始采取行动之前,请确保您已经使用下表创建了数据库模式:

  1. CREATE TABLE EMPLOYEE
  2. (
  3. ID INT PRIMARY KEY AUTO_INCREMENT,
  4. FIRSTNAME VARCHAR(30),
  5. LASTNAME VARCHAR(30),
  6. TELEPHONE VARCHAR(15),
  7. EMAIL VARCHAR(30),
  8. CREATED TIMESTAMP DEFAULT NOW()
  9. );

3. 创建 Maven Eclipse 动态 Web 项目

这不是困难的一步,而是重要的一步。 请确保您正在创建“Web 应用程序”而不是简单的“java 项目”。 我已经创建了名称为Spring3.2.5Hibernate4.0.1Integration的项目。

Spring 3 和 Hibernate 4 集成示例教程 - 图1

4. 创建配置

我不会在本节中强调更多,因为我没有使用上一篇文章中已经存在的新代码或函数集。 因此,请访问先前的示例 Hibernate+Spring 3 集成示例,以获取更多详细信息。

由于 Spring 版本的改进,我想在这里给出修改后的配置。

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <beans xmlns="http://www.springframework.org/schema/beans"
  3. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  4. xmlns:aop="http://www.springframework.org/schema/aop"
  5. xmlns:context="http://www.springframework.org/schema/context"
  6. xmlns:jee="http://www.springframework.org/schema/jee"
  7. xmlns:lang="http://www.springframework.org/schema/lang"
  8. xmlns:p="http://www.springframework.org/schema/p"
  9. xmlns:tx="http://www.springframework.org/schema/tx"
  10. xmlns:util="http://www.springframework.org/schema/util"
  11. xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
  12. http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd
  13. http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd
  14. http://www.springframework.org/schema/jee http://www.springframework.org/schema/jee/spring-jee.xsd
  15. http://www.springframework.org/schema/lang http://www.springframework.org/schema/lang/spring-lang.xsd
  16. http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx.xsd
  17. http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util.xsd">
  18. <context:annotation-config />
  19. <context:component-scan base-package="com.howtodoinjava.controller" />
  20. <bean id="jspViewResolver"
  21. class="org.springframework.web.servlet.view.InternalResourceViewResolver">
  22. <property name="viewClass"
  23. value="org.springframework.web.servlet.view.JstlView" />
  24. <property name="prefix" value="/WEB-INF/view/" />
  25. <property name="suffix" value=".jsp" />
  26. </bean>
  27. <bean id="messageSource"
  28. class="org.springframework.context.support.ReloadableResourceBundleMessageSource">
  29. <property name="basename" value="classpath:messages" />
  30. <property name="defaultEncoding" value="UTF-8" />
  31. </bean>
  32. <bean id="propertyConfigurer"
  33. class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"
  34. p:location="/WEB-INF/jdbc.properties" />
  35. <bean id="dataSource"
  36. class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close"
  37. p:driverClassName="${jdbc.driverClassName}"
  38. p:url="${jdbc.databaseurl}" p:username="${jdbc.username}"
  39. p:password="${jdbc.password}" />
  40. <bean id="sessionFactory"
  41. class="org.springframework.orm.hibernate4.LocalSessionFactoryBean">
  42. <property name="dataSource" ref="dataSource" />
  43. <property name="configLocation">
  44. <value>classpath:hibernate.cfg.xml</value>
  45. </property>
  46. <property name="hibernateProperties">
  47. <props>
  48. <prop key="hibernate.dialect">${jdbc.dialect}</prop>
  49. <prop key="hibernate.show_sql">true</prop>
  50. </props>
  51. </property>
  52. </bean>
  53. <bean id="employeeDAO" class="com.howtodoinjava.dao.EmployeeDaoImpl"></bean>
  54. <bean id="employeeManager" class="com.howtodoinjava.service.EmployeeManagerImpl"></bean>
  55. <tx:annotation-driven transaction-manager="transactionManager"/>
  56. <bean id="transactionManager"
  57. class="org.springframework.orm.hibernate4.HibernateTransactionManager">
  58. <property name="sessionFactory" ref="sessionFactory" />
  59. </bean>
  60. </beans>

5. 下载并复制lib文件夹中所需的 jar 文件

以前的帖子是关于 Maven 的,所以很多工作似乎都是多余的。 但是,对于使用 ANT 的用户,他们必须使用下载的 jar。 好吧,这一次,我已经为您完成了这项工作。 以下是此项目中使用的 jar 文件列表。

  1. antlr-2.7.7.jar
  2. aopalliance-1.0.jar
  3. commons-collections-3.2.1.jar
  4. commons-dbcp-1.4.jar
  5. commons-lang-2.5.jar
  6. commons-logging-1.1.1.jar
  7. commons-pool-1.5.4.jar
  8. dom4j-1.6.1.jar
  9. hibernate-commons-annotations-3.2.0.Final.jar
  10. hibernate-core-4.0.1.Final.jar
  11. hibernate-jpa-2.1-api-1.0.0.Draft-16.jar
  12. javassist-3.12.1.GA.jar
  13. jboss-logging-3.1.1.GA.jar
  14. jstl-1.2.jar
  15. jta-1.1.jar
  16. junit-4.11.jar
  17. mysql-connector-java-5.1.9.jar
  18. slf4j-api-1.6.1.jar
  19. spring-aop-3.2.5.RELEASE.jar
  20. spring-beans-3.2.5.RELEASE.jar
  21. spring-context-3.2.5.RELEASE.jar
  22. spring-context-support-3.2.5.RELEASE.jar
  23. spring-core-3.2.5.RELEASE.jar
  24. spring-expression-3.2.5.RELEASE.jar
  25. spring-jdbc-3.2.5.RELEASE.jar
  26. spring-orm-3.2.5.RELEASE.jar
  27. spring-tx-3.2.5.RELEASE.jar
  28. spring-web-3.2.5.RELEASE.jar
  29. spring-webmvc-3.2.5.RELEASE.jar
  30. standard-1.1.2.jar

将上述所有 jar 文件复制到lib文件夹中。

完成此步骤后,您的项目应如下所示:

Spring 3 和 Hibernate 4 集成示例教程 - 图2

spring 3 项目层次结构

6. Spring Hibernate 集成示例演示

结果将类似于以前的帖子。 为了提醒您,屏幕将如下所示:

URL:http://localhost:8080/Spring3.2.5Hibernate4.0.1Integration/

Spring 3 和 Hibernate 4 集成示例教程 - 图3

spring 3 + hibernate 集成示例

下载源码

学习愉快!