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. mysql 幻读

    幻读(Phantom Read) 是指当用户读取某一范围的数据行时,B事务在该范围内插入了新行,当用户再读取该范围的数据行时,会发现有新的“幻影”行.InnoDB和Falcon存储引擎通 过多版本并发 ...

  2. bzoj1056: [HAOI2008]排名系统 && 1862: [Zjoi2006]GameZ游戏排名系统

    hash 加上 平衡树(名次树). 这道题麻烦的地方就在于输入的是一个名字,所以需要hash. 这个hash用的是向后探查避免冲突,如果用类似前向星的方式避免冲突,比较难写,容易挂掉,但也速度快些. ...

  3. Cobar分布式数据库的应用与实践

    最新文章:看我如何快速学习.Net(高可用数据采集平台).高并发数据采集的架构应用(Redis的应用) 问题点: 随着项目的增长,数据和数据表也成倍的增长,普通的单点数据库已经无法满足日常的增长的需要 ...

  4. apache开源项目--Mahout

    Apache Mahout 是 Apache Software Foundation (ASF) 开发的一个全新的开源项目,其主要目标是创建一些可伸缩的机器学习算法,供开发人员在 Apache 在许可 ...

  5. Java [leetcode 32]Longest Valid Parentheses

    题目描述: Given a string containing just the characters '(' and ')', find the length of the longest vali ...

  6. Java [leetcode 24]Swap Nodes in Pairs

    题目描述: Given a linked list, swap every two adjacent nodes and return its head. For example, Given 1-& ...

  7. 第一个GTK+程序

    在这一章节中,我们将开始编写第一个GTK+程序. 超级简单的例子 我们要“制造”一个超级简单的GTK+程序.就是显示一个空白的窗口. #include <gtk/gtk.h> int ma ...

  8. MVC5中使用KinEditor

    参考:http://www.cnblogs.com/weicong/archive/2012/03/31/2427608.html 第一步 将 KindEditor 的源文件添加到项目中,建议放到 / ...

  9. hadoop源码导入eclipse

    1,下载hadoop源码 下载链接 http://svn.apache.org/repos/asf/hadoop/common/tags/release-2.2.0/   为2.2.0的源码, 也可以 ...

  10. Java 继承详解

    什么是继承? 多个类中存在相同属性和行为时,将这些内容抽取到单独一个类中,那么多个类无需再定义这些属性和行为,只要继承那个类即可. 多个类可以称为子类,单独这个类称为父类.超类或者基类. 子类可以直接 ...