博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
基于注解Spring MVC综合Hibernate(需要jar包,spring和Hibernate整合配置,springMVC组态,重定向,)批量删除...
阅读量:6901 次
发布时间:2019-06-27

本文共 12664 字,大约阅读时间需要 42 分钟。

1、进口jar

2、web.xml配置

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

<web-app version="2.4"
 xmlns=""
 xmlns:xsi=""
 xsi:schemaLocation="
 ">
 
 <!-- 通过上下文參数指定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=""
 xmlns:xsi=""
 xmlns:mvc=""
 xmlns:context=""
 xmlns:aop=""
 xmlns:tx=""
 xsi:schemaLocation="
      
      
      
      
      
      
      
      
       ">
 <!-- 注解驱动 -->
 <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=""
 xmlns:xsi=""
 xmlns:mvc=""
 xmlns:context=""
 xmlns:aop=""
 xmlns:tx=""
 xsi:schemaLocation="
      
      
      
      
      
      
      
      
       ">
 
 <!-- 配置内部资源视图解析器 -->
 <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"
    "">
<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=">
<%
 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="批量删除" οnclick="deleteSomePerson();">
  <table width="70%" border="1">
   <tr>
    <td>
     <input type="checkbox" id="topId" οnclick="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>

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

你可能感兴趣的文章
隐马尔可夫HMM中viterbi算法
查看>>
ospf 协议配置方法及实例
查看>>
Python:解决中文字符串问题
查看>>
python模块之xml
查看>>
那些在学习iOS开发前就应该知道的事
查看>>
python多线程--Condition(条件对象)
查看>>
c++汉诺塔相关知识总结1
查看>>
Gym 100169A 最短路
查看>>
android 中activity调用本地service中的方法。
查看>>
强制IE浏览器或WebBrowser控件使用指定版本显示网页(转发)
查看>>
OJDBC版本区别
查看>>
中国网建之SMS
查看>>
《SQL 进阶教程》 case:练习题1-1-2 转换行列——在表头里加入汇总列
查看>>
展讯NAND Flash高级教程【转】
查看>>
DynamicPropertyAccessor Expression lambda
查看>>
csc.rsp Invent by Microshaoft
查看>>
CentOS7上GitHub/GitLab多帐号管理SSH Key
查看>>
字符串+变量
查看>>
style
查看>>
Log4j配置详解
查看>>