1、进口jar

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 MVC 学习总结(八)——Spring MVC概要与环境配置(IDEA+Maven+Tomcat7+JDK8、示例与视频)

    一.MVC概要 MVC是模型(Model).视图(View).控制器(Controller)的简写,是一种软件设计规范,用一种将业务逻辑.数据.显示分离的方法组织代码,MVC主要作用是降低了视图与业务 ...

  2. Spring MVC 学习总结(十)——Spring+Spring MVC+MyBatis框架集成(IntelliJ IDEA SSM集成)

    与SSH(Struts/Spring/Hibernate/)一样,Spring+SpringMVC+MyBatis也有一个简称SSM,Spring实现业务对象管理,Spring MVC负责请求的转发和 ...

  3. Spring MVC 学习总结(九)——Spring MVC实现RESTful与JSON(Spring MVC为前端提供服务)

    很多时候前端都需要调用后台服务实现交互功能,常见的数据交换格式多是JSON或XML,这里主要讲解Spring MVC为前端提供JSON格式的数据并实现与前台交互.RESTful则是一种软件架构风格.设 ...

  4. 【转载】JAVA SpringBoot 项目打成jar包供第三方引用自动配置(Spring发现)解决方案

    JAVA SpringBoot 项目打成jar包供第三方引用自动配置(Spring发现)解决方案 本文为转载,原文地址为:https://www.cnblogs.com/adversary/p/103 ...

  5. Spring (3.2.4) 常用jar 包解析

    Spring (3.2.4) 常用jar 包解析 基本jar包 spring-aop-3.2.4.RELEASE.jar spring-aspects-3.2.4.RELEASE.jar spring ...

  6. Spring aop框架使用的jar包

    除了前两个jar包,后面的jar包spring框架包中都有,前两个jar包的下载地址:https://pan.baidu.com/s/1L-GLGT1c8vnwFwqLxzzZuw

  7. 精尽Spring Boot源码分析 - Jar 包的启动实现

    该系列文章是笔者在学习 Spring Boot 过程中总结下来的,里面涉及到相关源码,可能对读者不太友好,请结合我的源码注释 Spring Boot 源码分析 GitHub 地址 进行阅读 Sprin ...

  8. spring mvc官网下最新jar搭建框架-静态资源访问处理-注解-自动扫描

    1.从官网下载spring相关jar http://spring.io/projects 点击SPRING FRAMEWORK

  9. Spring MVC学习总结(2)——Spring MVC常用注解说明

        使用Spring MVC的注解及其用法和其它相关知识来实现控制器功能. 02     之前在使用Struts2实现MVC的注解时,是借助struts2-convention这个插件,如今我们使 ...

随机推荐

  1. 在深入分析:Android在app之间的相互作用(一个,使用Action)

    我们开发Android App时间应用,有些需求,我们需要启动另一App为了应对一些逻辑.例如,我们需要映射基于地址调用系统或相关Map App,所以,我们不自己有App在相应的功能的制备.而是通过I ...

  2. CAS实现SSO单点登录原理(转)

    1.      CAS 简介 1.1.  What is CAS ? CAS ( Central Authentication Service ) 是 Yale 大学发起的一个企业级的.开源的项目,旨 ...

  3. Shibboleth

    1.Shibboleth是一个针对SSO的开源项目.Shibboleth项目主要应用在校园内Web资源共享,以及校园间的应用系统的用户身份联合认证.

  4. fiddler打开后 浏览器就上不了网的解决方法

    fiddler设置一下即可 Tools fiddler options connections 不要选中 Act as system proxy on startup

  5. Linux开机自启动

    永久打开或则关闭 chkconfig iptables on chkconfig iptables off 即时生效,重启后还原 service iptables start service ipta ...

  6. 妙用perfmon Alert抓dump

    抓dump文件,经常是解决众多疑难杂症的不二手段.但是很多时候,我们没办法抓.比如说 几秒内的线程数暴涨200个,然后迅速回落 程序跑了两天,内存涨到某个数字就自己OOM了 原因不外乎都是时间短,没有 ...

  7. C++该函数隐藏

    只有基类成员函数的定义已声明virtualkeyword,当在派生类中的时间,以支付功能实现,virtualkeyword可以从时间被添加以增加.它不影响多状态. easy混淆视听,掩盖: ,规则例如 ...

  8. [LeetCode] Combinations [38]

    称号 Given two integers n and k, return all possible combinations of k numbers out of 1 ... n. For exa ...

  9. Bag标签成一条线的代码来实现中国字

    说明: <Bag id=书包名 act=2words[name=key] [gap=字符] [quotes=引號]>中英文混合内容</Bag> 例0: 默认分词(无gap和qu ...

  10. android利用jdk制作签名

    Apk签名首先要有一个keystore的签名用的文件. keystore是由jdk自带的工具keytool生成的.详细生成方式參考一下: 開始->执行->cmd->cd 到你安装的j ...