`

springmvc和hibernate的整合(xml)

 
阅读更多

第一步,导入springhibernatejar(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;
	}

}

 

第五步,DAOEmployeeDao.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);
	}

}

 

第六步,serviceEmployeeService.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进行测试

 

  • 大小: 8.9 KB
分享到:
评论

相关推荐

    springMVC整合Hibernate案例

    代码为国外网站上的案例,创建了Eclipse项目后,测试跑通了。通过Hibernate内部的sesssion访问SQL数据库,插入记录,删除记录(内加代码测试),查询数据展现。数据库为SQL Server,看下xml内部的配置即明白

    springMVC + spring + hibernate 整合的管理系统小案例

    下载后请修改数据库用户名和密码,即springAnnotation-hibernate.xml文件 案例系统支持功能如下: 注册功能,身份证,邮箱,手机号,姓名等校验,ajax异步获取资源 分页显示,编辑更新,多行删除等更功能,使用了MVC...

    springmvc5+hibernate5+junit4+log4j2整合实例

    springmvc5+hibernate5+junit4+log4j2整合实例 包含 代码实例 数据库建表sql 运行环境 myeclipes2015 jdk 1.8 tomcat 8.0

    Spring hibernate SpringMVC整合对数据库操作

    Hibernate是一款优秀的ORM框架,能够连接并操作数据库,包括保存和修改数据。Spring MVC是Java的web框架,能够将Hibernate集成进去,完成数据的CRUD。Hibernate使用方便,配置响应的XML文件即可。由于spring3.x,基于...

    SpringMVC+Hibernate全注解整合

    对web包中的所有类进行扫描,以完成Bean创建和自动依赖注入的功能 mvc:annotation-driven --&gt; &lt;!-- 扫描包 --&gt; &lt;context:annotation-config/&gt; *" /&gt; ...

    springmvc4+hibernate4 jpa实现整合(含jar包)

    通过参考和引用传智播客的免费教程,将springmvc4.1.6与hibernate4.3.10提供的JPA实现整合,使用mysql5.6.25,在MyEclipse2014中测试通过。可以作为web开发的基础框架使用。 使用说明: 1.需要安装mysql,并创建名为...

    SpringMVC+hibernate+mySql需要的jar包

    此jar包适合新手使用,不同项目中会有不同需求,请自行选择,其中包括SpringMVC(IOC+AOP),hibernate,json,xml等springMvc整合的相关jar包,1个资源分权当是我收集整理的辛苦费,您随便回复一下帖子就能赚回来,...

    Spring MVC4+Hibernate4整合

    含JAR包,Spring4.2.0.RC3+Hibernate4.3.10.Final,目前最新包,事务使用XML配置,含通用DAO,内有运行小实例,整合多位大神资料,感谢他们!

    整合了SpringMVC security 4.0 hibernate的DEMO

    整合了SpringMVC security 4.0 和Hibernate 4.0 的示例程序,使用XML标注方式实现。 花了一天时间,根据教程弄完的,很难得!

    简单配置 shiro + spring +springMVC+hibernate简单框架

    SpringMVC整合Shiro,Shiro是一个强大易用的Java安全框架,提供了认证、授权、加密和会话管理等功能。 配置applicationContext-shiro.xml 1. 配置authorizingRealm 2.Shiro Filter 设置拦截的内容和登录页面和...

    Spring、SpringMVC和Mybatis框架整合包

    手把手教你整合最优雅SSM框架:SpringMVC + Spring + MyBatis 博客地址:http://blog.csdn.net/qq598535550/article/details/51703190 我们看招聘信息的时候,经常会看到这一点,需要具备SSH框架的技能;而且在大...

    基于SpringMVC和Snaker的工作流系统设计源码

    该系统是一个基于springmvc、hibernate3、snaker整合的精简版工作流系统,旨在为企业提供高效的工作流管理解决方案。系统采用了Java作为主要开发语言,同时融合了JavaScript、CSS和HTML等技术,构建了一个稳定、易用...

    springMVC+Spring3+hibernate4整合实现增删改查demo,带有jar包和测试类。增删改查的操作供大家学习。

    springMVC+Spring3+hibernate4整合实现增删改查demo 1修改beans.xml 中自己数据库用户名 和密码 2在数据库中建立一个名字为springmvc的数据库 3导入eclipse 启动即可运行 4:...

    myibatis3和springMVC整合

    datasource在applicationContext.xml中 和hibernate整合相比只是修改sessionFactory

    spring2.5_mvc框架_01_基于2.5的纯xml配置项目开发(包含整合hibernate).flv

    这里是我自学 springmvc 框架的基本教程,按照这个教程可以轻松的掌握SpringMvc的搭建和使用,同时下一步本人会将 SpringMVC和数据库操作集成学习也进行分项,本次学习共八节,这里是第一节。

    springMVC整合

    springMVC的整合使用spring的配置文件统合hibernate的核心配置文件.这样做的有点是减少了xml文件的配置,简化了编程 hibernate的核心配置文件hibernate.cfg.xml的组成大致可以分为三个部分:

    springmvc4-tiles-hibernate4.rar

    maven构建web工程,springmvc4整合tiles布局框架,配置基于java注解方式,没有xml文件

    Spring+Spring mvc+Hibernate+Bootstrap、企业级员工信息管理系统

    后台全注解式的开发(除了必要的spring和hibernate的xml配置以外) 03. 后台通过自定义注解结合一个访问拦截器实现整个系统的权限控制 04. 系统前台采用全采用的Html+jQuery开发 05. 系统前台与后台的交互全部...

    springmvc jar包

    springmvc框架所需要的 jar包,可用以springmvc 和spring ,hibernate的框架的整合,包含springmvc.xml配置文件

Global site tag (gtag.js) - Google Analytics