zoukankan      html  css  js  c++  java
  • 基于注解Spring MVC综合Hibernate(需要jar包,spring和Hibernate整合配置,springMVC组态,重定向,)批量删除

    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>

    版权声明:本文博客原创文章。博客,未经同意,不得转载。

  • 相关阅读:
    IOS创建Button简单实例
    IOSActionSheet、AlertView、Slider、Switch的简单使用
    IOS翻转注意
    [教程]iOS 4 开发的好东西 (资料)url
    Proxy和Decorator模式
    Using JNDI connecting DB
    影片“One Day”,还不错
    Minabased TCP server examples
    MySQL vs. Oracle on sequence
    Java DB and JDBC(Embedded Derby)
  • 原文地址:https://www.cnblogs.com/zfyouxi/p/4622063.html
Copyright © 2011-2022 走看看