1、导入jar

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvdG90b3R1enVvcXVhbg==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast">

2、web.xml配置

<?xml version="1.0" encoding="UTF-8"?>

<web-app version="2.4"

 xmlns="http://java.sun.com/xml/ns/j2ee"

 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

 xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee

 http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">

 

 <!-- 通过上下文參数指定spring配置文件的位置 -->

 <context-param>

  <param-name>contextConfigLocation</param-name>

  <param-value>classpath:beans.xml</param-value>

 </context-param>

 <listener>

  <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>

 </listener>

 

 <servlet>

  <servlet-name>action</servlet-name>

  <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>

  <init-param>

   <param-name>contextConfigLocation</param-name>

   <param-value>classpath:springMVC.xml</param-value>

  </init-param>

 </servlet>

 <servlet-mapping>

  <servlet-name>action</servlet-name>

  <url-pattern>/</url-pattern>

 </servlet-mapping>

  <welcome-file-list>

    <welcome-file>index.jsp</welcome-file>

  </welcome-file-list>

</web-app>

3、bean.xml配置

<?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:mvc="http://www.springframework.org/schema/mvc"

 xmlns:context="http://www.springframework.org/schema/context"

 xmlns:aop="http://www.springframework.org/schema/aop"

 xmlns:tx="http://www.springframework.org/schema/tx"

 xsi:schemaLocation="http://www.springframework.org/schema/beans

      http://www.springframework.org/schema/beans/spring-beans.xsd

      http://www.springframework.org/schema/mvc

      http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd

      http://www.springframework.org/schema/context

      http://www.springframework.org/schema/context/spring-context-3.0.xsd

      http://www.springframework.org/schema/aop

      http://www.springframework.org/schema/aop/spring-aop-3.0.xsd

      http://www.springframework.org/schema/tx

      http://www.springframework.org/schema/tx/spring-tx-3.0.xsd ">

 <!-- 注解驱动 -->

 <mvc:annotation-driven/>

 <!-- 组件扫描 -->

 <context:component-scan base-package="cn.itcast.springmvc"></context:component-scan>

 

 <!-- 定义数据源 -->

 <bean id="ds" class="com.mchange.v2.c3p0.ComboPooledDataSource">

  <property name="driverClass" value="com.mysql.jdbc.Driver"></property>

  <property name="jdbcUrl" value="jdbc:mysql://localhost:3306/springmvc"></property>

  <property name="user" value="root"></property>

  <property name="password" value="123456"></property>

  <property name="initialPoolSize" value="10"></property>

  <property name="maxPoolSize" value="50"></property>

  <property name="minPoolSize" value="10"></property>

 </bean>

 

 <bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">

  <property name="dataSource" ref="ds"></property>

  

  <!-- hibernate映射文件的位置 -->

  <property name="mappingDirectoryLocations">

   <value>classpath:cn/itcast/springmvc/domain/</value>

  </property>

  <property name="hibernateProperties">

   <props>

    <prop key="hibernate.Dialect">org.hibernate.dialect.MySQLInnoDBDialect</prop>

    <prop key="hibernate.show_sql">true</prop>

    <prop key="hibernate.hbm2ddl.auto">update</prop>

   </props>

  </property>

 </bean>

 

 <!-- 配置事物管理器 -->

 <bean id="txManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager">

  <property name="sessionFactory" ref="sessionFactory"/>

 </bean>

 

 <!-- 配置事物的传播特性 (事物通知)-->

 <tx:advice id="txAdvice" transaction-manager="txManager">

  <tx:attributes>

   <tx:method name="save*" propagation="REQUIRED"/>

   <tx:method name="delete*" propagation="REQUIRED"/>

   <tx:method name="update*" propagation="REQUIRED"/>

   <tx:method name="find*" read-only="true"/>

   <tx:method name="*" read-only="true"/>

  </tx:attributes>

 </tx:advice>

 

 <aop:config>

  <aop:advisor pointcut="execution(* *..*ServiceImpl.*(..))" advice-ref="txAdvice"/>

  <!--

   <aop:advisor advice-ref="txAdvice" pointcut="execution(* *..*ServiceImpl.*(..))"/>

   -->

 </aop:config>

</beans>

4、SpringMVC.xml配置

<?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:mvc="http://www.springframework.org/schema/mvc"

 xmlns:context="http://www.springframework.org/schema/context"

 xmlns:aop="http://www.springframework.org/schema/aop"

 xmlns:tx="http://www.springframework.org/schema/tx"

 xsi:schemaLocation="http://www.springframework.org/schema/beans

      http://www.springframework.org/schema/beans/spring-beans.xsd

      http://www.springframework.org/schema/mvc

      http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd

      http://www.springframework.org/schema/context

      http://www.springframework.org/schema/context/spring-context-3.0.xsd

      http://www.springframework.org/schema/aop

      http://www.springframework.org/schema/aop/spring-aop-3.0.xsd

      http://www.springframework.org/schema/tx

      http://www.springframework.org/schema/tx/spring-tx-3.0.xsd ">

 

 <!-- 配置内部资源视图解析器 -->

 <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">

  <property name="prefix" value="/WEB-INF/jsp/"></property>

  <property name="suffix" value=".jsp"></property>

 </bean>   

</beans>

5、domain和hbm.xml配置

package cn.itcast.springmvc.domain;

public class Person {

private String id;

 private String name;

 private Integer age;

 private String address;

 public String getId() {

  return id;

 }

 public void setId(String id) {

  this.id = id;

 }

 public String getName() {

  return name;

 }

 public void setName(String name) {

  this.name = name;

 }

 public Integer getAge() {

  return age;

 }

 public void setAge(Integer age) {

  this.age = age;

 }

 public String getAddress() {

  return address;

 }

 public void setAddress(String address) {

  this.address = address;

 }

}

----------------------------

Person.hbm.xml

<?

xml version="1.0"?>

<!DOCTYPE hibernate-mapping PUBLIC

    "-//Hibernate/Hibernate Mapping DTD 3.0//EN"

    "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">

<hibernate-mapping>

 <class name="cn.itcast.springmvc.domain.Person" table="persons">

  <id name="id" column="id" type="string">

   <generator class="uuid" />

  </id>

  <property name="name" column="name" type="string" />

  <property name="age" column="age" type="integer" />

  <property name="address" column="address" type="string" />

 </class>

</hibernate-mapping>

6、PersonDao

package cn.itcast.springmvc.dao;

import java.util.List;

import cn.itcast.springmvc.domain.Person;

public interface IPersonDao {

 public Person findPersonById(String id);

 public List<Person> findAllPerson();

 public void savePerson(Person p);

 public void deletePersonById(String id);

 public void updatePerson(Person p);

}

7、PersonDaoImpl

package cn.itcast.springmvc.dao;

import java.util.List;

import javax.annotation.Resource;

import org.hibernate.SessionFactory;

import org.springframework.stereotype.Repository;

import cn.itcast.springmvc.domain.Person;

@Repository(value="personDao")

public class PersonDaoImpl implements IPersonDao {

 

 @Resource(name="sessionFactory")

 private SessionFactory sf;

public Person findPersonById(String id) {

  return (Person) sf.getCurrentSession().createQuery("from Person where id = '" + id + "'").list().get(0);

 }

public void savePerson(Person p) {

  sf.getCurrentSession().save(p);

 }

public void deletePersonById(String id) {

  Person p = new Person();

  p.setId(id);

  //sf.getCurrentSession().delete(id, Person.class);

  sf.getCurrentSession().delete(p);

 }

public List<Person> findAllPerson() {

  return sf.getCurrentSession().createQuery("from Person").list();

 }

public void updatePerson(Person p) {

  sf.getCurrentSession().update(p);

 }

}

8、IPersonService

package cn.itcast.springmvc.service;

import java.util.List;

import cn.itcast.springmvc.domain.Person;

public interface IPersonService {

 public Person findPersonById(String id);

 public List<Person> findAllPerson();

 public void savePerson(Person p);

 public void deletePersonById(String id);

 public void updatePerson(Person p);

}

9、PersonServiceImpl

package cn.itcast.springmvc.service;

import java.util.List;

import javax.annotation.Resource;

import cn.itcast.springmvc.dao.IPersonDao;

import cn.itcast.springmvc.domain.Person;

@org.springframework.stereotype.Service(value="personService")

public class PersonServiceImpl implements IPersonService {

 

 @Resource(name="personDao")

 private IPersonDao personDao;

public Person findPersonById(String id) {

  return personDao.findPersonById(id);

 }

public void savePerson(Person p) {

  personDao.savePerson(p);

 }

public void deletePersonById(String id) {

  personDao.deletePersonById(id);

 }

public List<Person> findAllPerson() {

  return personDao.findAllPerson();

 }

public void updatePerson(Person p) {

  personDao.updatePerson(p);

 }

}

10、PersonController

package cn.itcast.springmvc.controller;

import java.util.List;

import javax.annotation.Resource;

import javax.servlet.http.HttpServletRequest;

import org.springframework.stereotype.Controller;

import org.springframework.web.bind.annotation.RequestMapping;

import cn.itcast.springmvc.domain.Person;

import cn.itcast.springmvc.service.IPersonService;

@Controller

@RequestMapping(value = "/person")

public class PersonController {

@Resource(name = "personService")

 private IPersonService personService;

@RequestMapping(value = "/findPersonById")

 public String findPersonById(String id) {

  Person p = personService.findPersonById(id);

  System.out.println(p);

  return "showPerson";

 }

@RequestMapping(value = "/savePersonUI")

 public String savePersonUI() {

  return "savePerson";

 }

@RequestMapping(value = "/savePerson")

 public String savePerson(Person p) {

  personService.savePerson(p);

  System.out.println(p);

  // 重定向

  return "redirect:/person/findAllPerson";

 }

@RequestMapping(value = "/deletePersonById")

 public String deletePersonById(String id) {

  personService.deletePersonById(id);

// 重定向

  return "redirect:/person/findAllPerson";

 }

// 批量删除

 @RequestMapping(value = "/deletePersonByIds")

 public String deletePersonByIds(String ids) {

  ids = ids.substring(0, ids.length() - 1);

  String[] idss = ids.split(",");

  for (String id : idss) {

   personService.deletePersonById(id);

  }

  // 重定向

  return "redirect:/person/findAllPerson";

 }

@RequestMapping(value = "/findAllPerson")

 public String findAllPerson(HttpServletRequest req) {

  List<Person> persons = personService.findAllPerson();

  req.setAttribute("persons", persons);

  return "personList";

 }

@RequestMapping(value = "/updatePersonUI")

 public String updatePersonUI(HttpServletRequest req, String id) {

  Person p = personService.findPersonById(id);

  req.setAttribute("p", p);

  return "updatePerson";

 }

@RequestMapping(value = "/updatePerson")

 public String updatePerson(Person p) {

  personService.updatePerson(p);

  // 重定向

  return "redirect:/person/findAllPerson";

 }

}

11、personList.jsp

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>

<%

 String path = request.getContextPath();

 String basePath = request.getScheme() + "://"

   + request.getServerName() + ":" + request.getServerPort()

   + path + "/";

%>

<html>

 <head>

  <title>personList.jsp</title>

  <script type="text/javascript">

   function selectOrUnslect(){

    var ids = document.getElementsByName('ids');

    if(document.getElementById('topId').checked == true){

     for(var i=0;i<ids.length;i++){

      ids[i].checked = true;

     }

    }else{

     for(var i=0;i<ids.length;i++){

      ids[i].checked = false;

     }

    }

   }

   

   function deleteSomePerson(){

    var ids = document.getElementsByName('ids');

    var strIds = '';

    for(var i=0;i<ids.length;i++){

     if(ids[i].checked == true){

      strIds += ids[i].value + ',';

     }

    }

    window.location = '<%=path%>/person/deletePersonByIds?ids=' + strIds;

   }

  </script>

 </head>

 <body>

  <h3>

   用户列表页面

  </h3>

  <a href="<%=path %>/person/savePersonUI">加入用户</a><br>

  

  <input type="button" value="批量删除" onclick="deleteSomePerson();">

  <table width="70%" border="1">

   <tr>

    <td>

     <input type="checkbox" id="topId" onclick="selectOrUnslect();">

    </td>

    <td>

     name

    </td>

    <td>

     age

    </td>

    <td>

     address

    </td>

    <td>

     删除

    </td>

    <td>

     更新

    </td>

   </tr>

   <c:forEach items="${persons}" var="p">

    <tr>

     <td>

      <input type="checkbox" name="ids" value="${p.id }">

     </td>

     <td>

      ${p.name }

     </td>

     <td>

      ${p.age }

     </td>

     <td>

      ${p.address }

     </td>

     <td>

      <a href="<%=path %>/person/deletePersonById?id=${p.id }">删除</a>

     </td>

     <td>

      <a href="<%=path %>/person/updatePersonUI?id=${p.id }">更新</a>

     </td>

    </tr>

   </c:forEach>

  </table>

 </body>

</html>

12、savePerson.jsp

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>

<%

String path = request.getContextPath();

String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";

%>

<html>

  <head>

    <title>savePerson.jsp</title>

  </head>

  <body>

  <h3>加入用户页面</h3>

    <form action="<%=path %>/person/savePerson" method="post">

     <table>

      <tr>

       <td>name:</td>

       <td><input type="text" name="name"></td>

      </tr>

      <tr>

       <td>age</td>

       <td><input type="text" name="age"></td>

      </tr>

      <tr>

       <td>address</td>

       <td><input type="text" name="address"></td>

      </tr>

      <tr>

       <td><input type="submit" value="提交"></td>

       <td><input type="reset" value="重置"></td>

      </tr>

     </table>

    </form>

  </body>

</html>

13、showPerson.jsp

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>

<%

String path = request.getContextPath();

String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";

%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

<html>

  <head>

    <base href="<%=basePath%>">

   

    <title>My JSP 'showPerson.jsp' starting page</title>

   

 <meta http-equiv="pragma" content="no-cache">

 <meta http-equiv="cache-control" content="no-cache">

 <meta http-equiv="expires" content="0">   

 <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">

 <meta http-equiv="description" content="This is my page">

 <!--

 <link rel="stylesheet" type="text/css" href="styles.css">

 -->

</head>

 

  <body>

    This is showPerson.jsp

  </body>

</html>

14、updatePerson.jsp

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>

<%

String path = request.getContextPath();

String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";

%>

<html>

  <head>

    <title>savePerson.jsp</title>

  </head>

  <body>

    <h3>更新用户页面</h3>

    <form action="<%=path %>/person/updatePerson" method="post">

     <input type="hidden" name="id" value="${p.id}">

     <table>

      <tr>

       <td>name:</td>

       <td><input type="text" name="name" value="${p.name }"></td>

      </tr>

      <tr>

       <td>age</td>

       <td><input type="text" name="age" value="${p.age }"></td>

      </tr>

      <tr>

       <td>address</td>

       <td><input type="text" name="address" value="${p.address }"></td>

      </tr>

      <tr>

       <td><input type="submit" value="提交"></td>

       <td><input type="reset" value="重置"></td>

      </tr>

     </table>

    </form>

  </body>

</html>

基于注解的Spring MVC整合Hibernate(所需jar包,spring和Hibernate整合配置,springMVC配置,重定向,批量删除)的更多相关文章

  1. Spring 框架介绍 [Spring 优点][Spring 应用领域][体系结构][目录结构][基础 jar 包]

    您的"关注"和"点赞",是信任,是认可,是支持,是动力...... 如意见相佐,可留言. 本人必将竭尽全力试图做到准确和全面,终其一生进行修改补充更新. 目录 ...

  2. SSH框架整合配置所需JAR包(SSH整合)

    转载于:http://www.cnblogs.com/kaige123/p/5719662.html Hibernate Jar: 1.hibernate3.jar,这个是hibernate3.0的核 ...

  3. springmvc 项目完整示例07 设置配置整合springmvc springmvc所需jar包springmvc web.xml文件配置

    前面主要是后台代码,spring以及mybatis的整合 下面主要是springmvc用来处理请求转发,展现层的处理 之前所有做到的,完成了后台,业务层和持久层的开发完成了 接下来就是展现层了 有很多 ...

  4. hibernate中各个jar包的含义和关系

    最基本的Hibernate3.3.2之 JAR包(必要): 包名 位置 用途 hibernate3.jar /hibernate 核心JAR包 antlr.jar /hibernate/lib/req ...

  5. hibernate的各个jar包的作用

    hibernate的各个jar包的作用 最基本的Hibernate3.3.2之 JAR包(必要): 包名 位置 用途 hibernate3.jar /hibernate 核心JAR包 antlr.ja ...

  6. Spring环境搭建之:导入jar包、配置文件名称及放置位置

    Spring环境搭建之:导入jar包.配置文件名称及放置位置 现在项目开发中spring框架应用的还是比较多的,自己用的还不太熟练,每次用的时候总配置半天,总有些配置弄错,就找个时间总结以下,方便以后 ...

  7. Spring Batch远程分区的本地Jar包模式

    1 前言 欢迎访问南瓜慢说 www.pkslow.com获取更多精彩文章! Spring相关文章:Springboot-Cloud Spring Batch远程分区对于大量数据的处理非常擅长,它的实现 ...

  8. 使用maven-shade-plugin打包spring项目为可执行的jar包

    使用maven-shade-plugin打包spring项目为可执行的jar包,打包后的jar包里面包含依赖的jar包. POM文件: <plugin> <groupId>or ...

  9. 基于注解Spring MVC综合Hibernate(需要jar包,spring和Hibernate整合配置,springMVC组态,重定向,)批量删除

    1.进口jar 2.web.xml配置 <?xml version="1.0" encoding="UTF-8"?> <web-app ver ...

随机推荐

  1. 普通方式 分页【NOT IN】和【>】效率大PK 千万级别数据测试结果

    首现创建一张表,然后插入1000+万条数据,接下来进行测试. use TTgoif exists (select * from sysobjects where name='Tonge')drop t ...

  2. UVa 808 (建坐标系、找规律) Bee Breeding

    题意: 如图,按照图中的规律给这些格子编号.给出两个格子的编号,求从一个格子到另一个格子的最少步数.(一步只能穿过有有公共边的格子) 分析: 根据高中数学知识,选任意两个不共线的向量,就能表示平面上所 ...

  3. 【 D3.js 高级系列 — 1.0 】 文本的换行

    在 SVG 中添加文本是使用 text 元素.但是,这个元素不能够自动换行,超出的部分就显示不出来了,怎么办呢? 高级系列开篇前言 从今天开始写高级系列教程.还是那句话,由于本人实力有限,不一定保证入 ...

  4. RMAN数据库异机迁移

    本文讲述如何用rman将一个库迁移到另一个服务器上. 服务器A:linux es4 + oracle9204 (源)服务器B:linux es4 + oracle9204 (目标) 一.创建目录 为了 ...

  5. Hibernate4.x之映射关系--双向1-n

    双向1-n与双向n-1是完全相同的两种情形 双向1-n需要在1的一端可以访问n的一端,反之亦然. 域模型:从Order到Customer的多对一双向关联需要在Order类中定义一个Customer属性 ...

  6. Travel(HDU 4284状压dp)

    题意:给n个城市m条路的网图,pp在城市1有一定的钱,想游览这n个城市(包括1),到达一个城市要一定的花费,可以在城市工作赚钱,但前提有工作证(得到有一定的花费),没工作证不能在该城市工作,但可以走, ...

  7. JAVACC详解

    JavaCC(Java Compiler Compiler)是一个用JAVA开发的最受欢迎的语法分析生成器.这个分析生成器工具可以读取上下文无关且有着特殊意义的语法并把它转换成可以识别且匹配该语法的J ...

  8. Redhat Enterprise Linux 6.4图形界面的中文问题

    一.界面中文,但Windows中的中文文件名上传到linux后乱码. .bashrc文件: export LANG=zh_CN.UTF-8 /etc/sysconfig/i18n文件: LANG=&q ...

  9. 让浏览器进行跨域访问, 开发阶段需要跨域访问的测试方案 chrome的快捷方式里面 加 "C:\Program Files (x86)\Google\Chrome\Application\chrome.exe" --args --disable-web-security

    Chrome浏览器 的快捷方式里加一个 命令可以使浏览器进行跨域访问 "C:\Program Files (x86)\Google\Chrome\Application\chrome.exe ...

  10. Getting Started with OWIN and Katana(Console 代替iis 制作 web服务的简单方案)

    Open Web Interface for .NET (OWIN) defines an abstraction between .NET web servers and web applicati ...