第一步,导入spring和hibernate的jar包(spring.jar, spring-webmvc.jar, commons-logging-1.0.4.jar。其他jar包为hibernate相关jar包)
第二步,项目配置文件web.xml
<?xml version="1.0" encoding="UTF-8"?> <web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"> <display-name>springmvc_003_hibernate_xml</display-name> <filter> <filter-name>CharacterEncodingFilter</filter-name> <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class> <init-param> <param-name>encoding</param-name> <param-value>GBK</param-value> </init-param> </filter> <filter-mapping> <filter-name>CharacterEncodingFilter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> <servlet> <servlet-name>dispatcherServlet</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <init-param> <param-name>contextConfigLocation</param-name> <param-value>/WEB-INF/spring-mvc.xml</param-value> </init-param> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>dispatcherServlet</servlet-name> <url-pattern>/</url-pattern> </servlet-mapping> </web-app>
第三步,springMVC配置文件spring-mvc.xml(里面包含hibernate的配置信息)
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:tx="http://www.springframework.org/schema/tx" xmlns:aop="http://www.springframework.org/schema/aop" xmlns:context="http://www.springframework.org/schema/context" xsi:schemaLocation=" http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.5.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.5.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-2.5.xsd" > <!-- 数据源 --> <bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"> <property name="locations" value="classpath:jdbc.properties"></property> </bean> <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource"> <property name="driverClassName" value="${jdbc.driverClassName}" /> <property name="url" value="${jdbc.url}" /> <property name="username" value="${jdbc.username}" /> <property name="password" value="${jdbc.password}" /> </bean> <bean id="sessionFactory" class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean"> <property name="dataSource"> <ref bean="dataSource" /> </property> <property name="hibernateProperties"> <props> <!-- key的名字前面都要加hibernate. --> <!-- <prop key="hibernate.dialect">org.hibernate.dialect.OracleDialect</prop> --> <prop key="hibernate.dialect">org.hibernate.dialect.MySQLDialect</prop> <prop key="hibernate.show_sql">true</prop> <prop key="hibernate.format_sql">true</prop> <prop key="hibernate.hbm2ddl.auto">update</prop> </props> </property> <property name="packagesToScan"> <value>com.test.model</value> </property> </bean> <bean id="hibernateTemplate" class="org.springframework.orm.hibernate3.HibernateTemplate"> <property name="sessionFactory" ref="sessionFactory"></property> </bean> <!-- 配置事务边界 --> <bean id="txManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager"> <property name="sessionFactory" ref="sessionFactory"></property> </bean> <tx:annotation-driven transaction-manager="txManager" /> <tx:advice id="txAdvice" transaction-manager="txManager"> <tx:attributes> <tx:method name="find*" read-only="true" propagation="NOT_SUPPORTED" /> <!-- get开头的方法不需要在事务中运行,有些情况是没有必要使用事务的,比如获取数据。开启事务本身对性能是有一定的影响的 --> <tx:method name="*" /><!-- 其他方法在事务中运行 --> </tx:attributes> </tx:advice> <aop:config> <aop:pointcut id="businessService" expression="execution(public * com.test.service.*.*(..))" /> <aop:advisor advice-ref="txAdvice" pointcut-ref="businessService" /> </aop:config> <!-- Controller方法调用规则定义 --> <bean id="paraMethodResolver" class="org.springframework.web.servlet.mvc.multiaction.ParameterMethodNameResolver"> <property name="paramName" value="action" /> <property name="defaultMethodName" value="list" /> </bean> <!-- 页面View层基本信息设定 --> <bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver"> <property name="viewClass" value="org.springframework.web.servlet.view.JstlView" /> <property name="prefix" value="/jsp/" /> <property name="suffix" value=".jsp" /> </bean> <!-- servlet映射列表(这里employeeController为容器中com.test.controller.EmployeeController的bean名,它需要实现Controller中的handleRequest方法) --> <bean id="urlMapping" class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping"> <property name="mappings"> <props> <prop key="employee">employeeController</prop> </props> </property> </bean> <bean id="employeeController" class="com.test.controller.EmployeeController"> <property name="employeeService" ref="employeeService"></property> </bean> <bean id="employeeService" class="com.test.service.EmployeeService"> <property name="employeeDao" ref="employeeDao"></property> </bean> <bean id="employeeDao" class="com.test.dao.EmployeeDao"> <property name="hibernateTemplate" ref="hibernateTemplate"></property> </bean> </beans>
第四步,实体类Employee.java
package com.test.model; import javax.persistence.Entity; import javax.persistence.GeneratedValue; import javax.persistence.Id; @Entity public class Employee { @Id @GeneratedValue private int id; private String name; public int getId() { return id; } public void setId(int id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } }
第五步,DAO层EmployeeDao.java
package com.test.dao; import org.springframework.orm.hibernate3.HibernateTemplate; import com.test.model.Employee; public class EmployeeDao { private HibernateTemplate hibernateTemplate; public HibernateTemplate getHibernateTemplate() { return hibernateTemplate; } public void setHibernateTemplate(HibernateTemplate hibernateTemplate) { this.hibernateTemplate = hibernateTemplate; } public void add(Employee employee) { hibernateTemplate.save(employee); } }
第六步,service层EmployeeService.java
package com.test.service; import com.test.dao.EmployeeDao; import com.test.model.Employee; public class EmployeeService { private EmployeeDao employeeDao; public EmployeeDao getEmployeeDao() { return employeeDao; } public void setEmployeeDao(EmployeeDao employeeDao) { this.employeeDao = employeeDao; } public void add(String name) { Employee employee = new Employee(); employee.setName(name); employeeDao.add(employee); } }
第七步,控制器HelloController.java
package com.test.controller; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.springframework.web.servlet.ModelAndView; import org.springframework.web.servlet.mvc.Controller; import com.test.service.EmployeeService; public class EmployeeController implements Controller { private EmployeeService employeeService; public EmployeeService getEmployeeService() { return employeeService; } public void setEmployeeService(EmployeeService employeeService) { this.employeeService = employeeService; } @Override public ModelAndView handleRequest(HttpServletRequest request, HttpServletResponse response) throws Exception { // get提交时,这里需要转码,post提交不需要转码 String name = new String(request.getParameter("name").getBytes("iso8859-1"), "GBK"); request.setAttribute("name", name); employeeService.add(name); return new ModelAndView("result"); } }
第八步,在jsp目录下创建result.jsp文件
<%@ page language="java" contentType="text/html; charset=GBK" pageEncoding="GBK"%> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=GBK"> <title>结果</title> </head> <body> <h1><%=request.getAttribute("name") %></h1> </body> </html>
第九步,首页index.jsp文件
<%@ page language="java" contentType="text/html; charset=GBK" pageEncoding="GBK"%> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=GBK"> <title>首页</title> </head> <body> <form action="employee" method="get"> <input type="text" name="name"> <input type="submit" value="提交"> </form> </body> </html>
在浏览器中输入:
http://127.0.0.1:9900/springmvc_003_hibernate_xml/index.jsp进行测试
相关推荐
本文将详细介绍SpringMVC与Hibernate整合所需的jar文件以及它们在整合过程中的作用。 首先,我们需要理解SpringMVC的核心组件。它包括DispatcherServlet(前端控制器)、HandlerMapping(处理器映射器)、...
在IT行业中,Spring、SpringMVC和Hibernate是三个非常重要的框架,它们分别专注于不同领域的功能。Spring是一个全面的Java企业级应用开发框架,提供依赖注入(DI)和面向切面编程(AOP)等核心特性;SpringMVC是...
1. **com.springsource.org.aspectj.tools-1.6.6.RELEASE.jar**:这是AspectJ的工具包,AspectJ是一种面向切面编程(AOP)的实现,SpringMVC和Hibernate整合中可能用到AOP进行事务管理。 2. **hibernate3.jar**:这...
这个"springmvc spring hibernate整合Demo"旨在帮助初学者理解如何将这三个框架协同工作,实现一个完整的CRUD(创建、读取、更新、删除)应用。 Spring MVC 是 Spring 框架的一部分,专门用于构建Web应用程序。它...
Spring、SpringMVC和Hibernate是Java开发中三大核心框架,它们的整合是企业级Web应用的常见架构选择。Spring作为基础框架,提供了依赖注入(DI)和面向切面编程(AOP)等功能;SpringMVC则负责处理HTTP请求,实现...
3. **整合过程**:整合SpringMVC和Hibernate主要涉及以下几个步骤: - 配置SpringMVC:添加SpringMVC相关依赖,配置servlet-context.xml文件,设置DispatcherServlet,定义视图解析器如...
1. 添加依赖:在`pom.xml`文件中添加SpringMVC和Hibernate4的依赖库。 2. 数据源配置:在Spring配置文件中配置数据源,这里使用了C3P0连接池,它能有效管理数据库连接。C3P0配置包括初始连接数、最小/最大连接数等...
**SpringBoot/SpringMVC/Hibernate整合源码详解** 在Java Web开发中,Spring Boot、Spring MVC和Hibernate是三个非常重要的框架。Spring Boot简化了Spring应用程序的初始设置和配置,Spring MVC提供了处理HTTP请求...
Spring、SpringMVC和Hibernate是Java开发中三大核心框架,它们的整合是企业级应用开发的常见模式,被称为SSH(Spring、SpringMVC、Hibernate)整合。SSH整合提供了全面的解决方案,涵盖了依赖注入、MVC架构以及持久...
以上实例涵盖了SpringMVC和Hibernate整合的各个方面,对于初学者和进阶开发者都是很好的学习资源。通过这些实例,开发者可以更好地理解和掌握如何在实际项目中利用这两个框架协同工作,提升Web应用的开发效率和质量...
6. **配置文件**:整合Spring、SpringMVC和Hibernate需要一系列配置文件,如Spring的`applicationContext.xml`(定义bean及依赖),SpringMVC的`servlet-context.xml`(配置DispatcherServlet及视图解析器),以及...
Spring MVC和Hibernate整合所需的jar包通常包括以下几类: 1. **Spring框架**:包括spring-context、spring-beans、spring-web、spring-webmvc等模块,这些jar包提供了Spring的核心功能,如依赖注入、AOP、MVC支持...
在SpringMVC和Hibernate整合中,它们共同构建了一个强大的数据访问层。 首先,为了开始搭建整合环境,我们需要准备相关的库文件。本实例中,Spring版本为3.0.1,Hibernate版本为3.6,同时使用MySQL 5.6作为数据库。...
Hibernate框架则通过提供一套API和XML配置文件,将Java对象与数据库表进行映射。实体类代表数据库表,实体类的属性对应表的列。Hibernate使用Session接口与数据库交互,包括CRUD操作(创建、读取、更新、删除)。...
本文将详细介绍如何使用Maven作为构建工具,结合Spring、SpringMVC和Hibernate进行整合,实现一个基础的CRUD(创建、读取、更新和删除)功能。 首先,Maven是一个项目管理和综合工具,它管理项目的依赖关系,自动化...
**Spring MVC 和 Hibernate 整合** 1. **配置 Spring MVC** - 创建 `DispatcherServlet` 配置文件(如 `servlet-context.xml`),配置 HandlerMapping 和 HandlerAdapter。 - 配置 ViewResolver,如 ...
Spring、SpringMVC和Hibernate是Java开发中常用的三大框架,它们各自在应用程序的不同层次上发挥作用,共同构建了一个高效、灵活的后端系统。本整合Demo旨在展示如何将这三者结合,实现一个完整的Web应用程序。 ...
3. SpringMVC中使用Hibernate的整合,如声明事务管理器、配置DataSource、注入SessionFactory等。 4. 控制器(Controller)的编写,包括RequestMapping注解的使用、模型数据的绑定与传递。 5. Service层的设计,如何...
SpringMVC+Hibernate登录程序并进行增删改查是一个经典的Web开发示例,它整合了两个重要的Java技术框架——SpringMVC和Hibernate,用于构建基于Java的动态网站应用。SpringMVC是Spring框架的一部分,主要负责处理...
这个"springmvc+hibernate完整项目"是一个整合了这两者的技术实践,提供了完整的部署和运行环境,对于初学者或者希望快速搭建后台服务的开发者来说非常实用。 首先,SpringMVC作为Spring框架的一部分,主要处理HTTP...