zoukankan      html  css  js  c++  java
  • springMVC实现增删改查

    首先需要准备好一张数据库表我这里用emp这张表:具体代码:

     1 /*
     2 SQLyog 企业版 - MySQL GUI v8.14 
     3 MySQL - 5.1.73-community 
     4 *********************************************************************
     5 */
     6 /*!40101 SET NAMES utf8 */;
     7 
     8 create table `emp` (
     9     `empno` double ,
    10     `ename` varchar (60),
    11     `job` varchar (60),
    12     `mgr` double ,
    13     `hiredate` varchar (60),
    14     `sal` float ,
    15     `comm` float ,
    16     `deptno` double 
    17 ); 
    18 insert into `emp` (`empno`, `ename`, `job`, `mgr`, `hiredate`, `sal`, `comm`, `deptno`) values('7369','SMITH','CLERK','7902','2018-10-28 10:22:37','800','0.565','10');
    19 insert into `emp` (`empno`, `ename`, `job`, `mgr`, `hiredate`, `sal`, `comm`, `deptno`) values('7499','Allen','SALESMAN','7698','2018-10-28 10:22:37','1600','300','30');
    20 insert into `emp` (`empno`, `ename`, `job`, `mgr`, `hiredate`, `sal`, `comm`, `deptno`) values('7521','Ward','SALESMAN','7698','2018-10-28 10:22:37','1250','500','30');
    21 insert into `emp` (`empno`, `ename`, `job`, `mgr`, `hiredate`, `sal`, `comm`, `deptno`) values('7566','JONES','MANAGER','7839','2018-10-28 10:22:37','2975','0','20');
    22 insert into `emp` (`empno`, `ename`, `job`, `mgr`, `hiredate`, `sal`, `comm`, `deptno`) values('7654','MARTIN','SALESMAN','7698','2018-10-28 10:22:37','1250','1400','30');
    23 insert into `emp` (`empno`, `ename`, `job`, `mgr`, `hiredate`, `sal`, `comm`, `deptno`) values('7782','CLARK','MANAGER','7839','2018-10-28 10:22:37','2450',NULL,'10');
    24 insert into `emp` (`empno`, `ename`, `job`, `mgr`, `hiredate`, `sal`, `comm`, `deptno`) values('7788','SCOTT','ANALYST','7566','2018-10-28 10:22:38','3000',NULL,'20');
    25 insert into `emp` (`empno`, `ename`, `job`, `mgr`, `hiredate`, `sal`, `comm`, `deptno`) values('7839','KING','PRESIDENT',NULL,'2018-10-28 10:22:38','5000',NULL,'10');
    26 insert into `emp` (`empno`, `ename`, `job`, `mgr`, `hiredate`, `sal`, `comm`, `deptno`) values('7844','TURNER','SALESMAN','7698','2018-10-28 10:22:38','1500','0','30');
    27 insert into `emp` (`empno`, `ename`, `job`, `mgr`, `hiredate`, `sal`, `comm`, `deptno`) values('7876','ADAMS','CLERK','7788','2018-10-28 10:22:38','1100',NULL,'20');
    28 insert into `emp` (`empno`, `ename`, `job`, `mgr`, `hiredate`, `sal`, `comm`, `deptno`) values('7902','FORD','ANALYST','7566','2018-10-28 10:22:38','3000',NULL,'20');

    然后开始我们的增删改查工作:

    第一步:建立一个Maven项目,我们这里命名为"lianxicrud",然后配置pom.xml:需要的jar包有:jstl,javax.servlet-api,spring-web,spring-webmvc,

    spring-jdbc,mysql
     1 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
     2   xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
     3   <modelVersion>4.0.0</modelVersion>
     4   <groupId>web01</groupId>
     5   <artifactId>lianxicrud</artifactId>
     6   <packaging>war</packaging>
     7   <version>0.0.1-SNAPSHOT</version>
     8   <name>lianxicrud Maven Webapp</name>
     9   <url>http://maven.apache.org</url>
    10   <dependencies>
    11     <dependency>
    12       <groupId>junit</groupId>
    13       <artifactId>junit</artifactId>
    14       <version>3.8.1</version>
    15       <scope>test</scope>
    16     </dependency>
    17     <!-- https://mvnrepository.com/artifact/javax.servlet/jstl -->
    18     <dependency>
    19         <groupId>javax.servlet</groupId>
    20         <artifactId>jstl</artifactId>
    21         <version>1.2</version>
    22     </dependency>
    23     <!-- https://mvnrepository.com/artifact/javax.servlet/javax.servlet-api -->
    24     <dependency>
    25         <groupId>javax.servlet</groupId>
    26         <artifactId>javax.servlet-api</artifactId>
    27         <version>4.0.1</version>
    28         <scope>provided</scope>
    29     </dependency>
    30     <!-- https://mvnrepository.com/artifact/org.springframework/spring-web -->
    31     <dependency>
    32         <groupId>org.springframework</groupId>
    33         <artifactId>spring-web</artifactId>
    34         <version>5.0.8.RELEASE</version>
    35     </dependency>
    36     <!-- https://mvnrepository.com/artifact/org.springframework/spring-webmvc -->
    37     <dependency>
    38         <groupId>org.springframework</groupId>
    39         <artifactId>spring-webmvc</artifactId>
    40         <version>5.0.8.RELEASE</version>
    41     </dependency>
    42     <!-- https://mvnrepository.com/artifact/org.springframework/spring-jdbc -->
    43     <dependency>
    44         <groupId>org.springframework</groupId>
    45         <artifactId>spring-jdbc</artifactId>
    46         <version>5.0.8.RELEASE</version>
    47     </dependency>
    48     <!-- https://mvnrepository.com/artifact/mysql/mysql-connector-java -->
    49     <dependency>
    50         <groupId>mysql</groupId>
    51         <artifactId>mysql-connector-java</artifactId>
    52         <version>5.1.47</version>
    53     </dependency>
    54   </dependencies>
    55   <build>
    56     <finalName>lianxicrud</finalName>
    57   </build>
    58 </project>

    第二步:在WEB-INF下:建立springMVC-servlet.xml文件。配置springMVC-servlet.xml和WEB-INF下的web.xml

    1.springMVC-servlet.xml:主要配置数据源,视图解析器,以及注册拦截器......

     1 <?xml version="1.0" encoding="UTF-8"?>
     2 <beans xmlns="http://www.springframework.org/schema/beans"
     3     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context"
     4     xmlns:mvc="http://www.springframework.org/schema/mvc"
     5     xsi:schemaLocation="http://www.springframework.org/schema/beans 
     6                         http://www.springframework.org/schema/beans/spring-beans.xsd 
     7                         http://www.springframework.org/schema/context 
     8                         http://www.springframework.org/schema/context/spring-context.xsd
     9                         http://www.springframework.org/schema/mvc 
    10                         http://www.springframework.org/schema/mvc/spring-mvc.xsd">
    11     <context:component-scan base-package="controller" />
    12     <context:component-scan base-package="dao" />
    13     <context:component-scan base-package="biz" />
    14     <mvc:annotation-driven />
    15     <!-- 配置数据源 -->
    16     <bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
    17         <property name="url" value="jdbc:mysql://localhost:3306/test" />
    18         <property name="driverClassName" value="com.mysql.jdbc.Driver" />
    19         <property name="username" value="root" />
    20         <property name="password" value="66668888ZH" />
    21     </bean>
    22     <!-- 类似于ps对象的一个内容 -->
    23     <bean id="jdbcTemplate" 
    24         class="org.springframework.jdbc.core.JdbcTemplate">
    25         <property name="dataSource" ref="dataSource" />
    26     </bean>
    27     <!-- 视图解析器 -->
    28     <bean id="irvr"
    29         class="org.springframework.web.servlet.view.InternalResourceViewResolver">
    30         <property name="suffix" value=".jsp" />
    31         <property name="prefix" value="/user/" />
    32     </bean>
    33     <!-- 注册拦截器 -->
    34     <mvc:interceptors>
    35         <bean id="encode" class="interruptor.EncodeInterceptor"/>
    36     </mvc:interceptors>
    37     
    38 </beans>

    web.xml:

     1 <!DOCTYPE web-app PUBLIC
     2  "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
     3  "http://java.sun.com/dtd/web-app_2_3.dtd" >
     4 
     5 <web-app>
     6   <display-name>Archetype Created Web Application</display-name>
     7   <servlet>
     8       <servlet-name>springMVC</servlet-name>
     9       <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    10   </servlet>
    11   <servlet-mapping>
    12       <servlet-name>springMVC</servlet-name>
    13     <url-pattern>*.mvc</url-pattern>
    14   </servlet-mapping>
    15 </web-app>

    第三步:编写bean,dao,biz,controller,以及处理字符编码集的interrupt

    1.bean包:

    package bean;
    
    public class EmpBean {
    
        private Integer empNo;
        private String eName;
        private String job;
        private Integer mgr;
        private String hireDate;
        private Double sal;
        private Double comm;
        private Integer deptNo;
        public EmpBean() {
            // TODO Auto-generated constructor stub
        }
        public Integer getEmpNo() {
            return empNo;
        }
        public void setEmpNo(Integer empNo) {
            this.empNo = empNo;
        }
        public String geteName() {
            return eName;
        }
        public void seteName(String eName) {
            this.eName = eName;
        }
        public String getJob() {
            return job;
        }
        public void setJob(String job) {
            this.job = job;
        }
        public Integer getMgr() {
            return mgr;
        }
        public void setMgr(Integer mgr) {
            this.mgr = mgr;
        }
        public String getHireDate() {
            return hireDate;
        }
        public void setHireDate(String hireDate) {
            this.hireDate = hireDate;
        }
        public Double getSal() {
            return sal;
        }
        public void setSal(Double sal) {
            this.sal = sal;
        }
        public Double getComm() {
            return comm;
        }
        public void setComm(Double comm) {
            this.comm = comm;
        }
        public Integer getDeptNo() {
            return deptNo;
        }
        public void setDeptNo(Integer deptNo) {
            this.deptNo = deptNo;
        }
        @Override
        public String toString() {
            return "EmpBean [empNo=" + empNo + ", eName=" + eName + ", job=" + job + ", mgr=" + mgr + ", hireDate="
                    + hireDate + ", sal=" + sal + ", comm=" + comm + ", deptNo=" + deptNo + "]";
        }
        
    }

    2.dao包:

     1 package dao;
     2 
     3 import java.sql.ResultSet;
     4 import java.sql.SQLException;
     5 import java.util.List;
     6 
     7 import org.springframework.beans.factory.annotation.Autowired;
     8 import org.springframework.jdbc.core.JdbcTemplate;
     9 import org.springframework.jdbc.core.RowMapper;
    10 import org.springframework.stereotype.Repository;
    11 
    12 import bean.EmpBean;
    13 
    14 @Repository
    15 public class EmpDAO {
    16 
    17     @Autowired
    18     private JdbcTemplate jt;
    19     
    20     public void add(EmpBean eb) {
    21         String sql = "insert into emp values(null,?,?,?,?,?,?,?)";
    22         jt.update(sql, eb.geteName(),eb.getJob(),eb.getMgr(),eb.getHireDate(),eb.getSal(),eb.getComm(),eb.getDeptNo());
    23     } 
    24     
    25     public void delete(int empNo) {
    26         String sql = "delete from emp where empno = ?";
    27         jt.update(sql,empNo);
    28     }
    29     
    30     public void update(EmpBean eb) {
    31         String sql = "update emp set ename=?,job=?,mgr=?,hiredate=?,sal=?,comm=?,daptno=? where empno=?";
    32         jt.update(sql,eb.geteName(),eb.getJob(),eb.getMgr(),eb.getHireDate(),eb.getSal(),eb.getComm(),eb.getDeptNo(),eb.getEmpNo());
    33     }
    34     
    35     public List<EmpBean>findAll(){
    36         String sql = "select * from emp";
    37         return jt.query(sql, new RowMapperImpl());
    38     }
    39     
    40     public EmpBean findById(int empNo) {
    41         String sql = "select * from emp where empNo ='" + empNo +  "'";
    42         return jt.query(sql, new RowMapperImpl()).get(0);
    43     }
    44 }
    45 
    46 class RowMapperImpl implements RowMapper<EmpBean>{
    47     //对象关系映射(ORM),将查询出来的结果映射成类的属性
    48     @Override
    49     public EmpBean mapRow(ResultSet rs, int rowNum) throws SQLException {
    50         EmpBean eb = new EmpBean();
    51         eb.setEmpNo(rs.getInt(1));
    52         eb.seteName(rs.getString(2));
    53         eb.setJob(rs.getString(3));
    54         eb.setMgr(rs.getInt(4));
    55         eb.setHireDate(rs.getString(5));
    56         eb.setSal(rs.getDouble(6));
    57         eb.setComm(rs.getDouble(7));
    58         eb.setDeptNo(rs.getInt(8));
    59         return eb;
    60     }
    61 }

    3.biz包:

     1 package biz;
     2 
     3 import java.util.List;
     4 
     5 import org.springframework.beans.factory.annotation.Autowired;
     6 import org.springframework.stereotype.Service;
     7 
     8 import bean.EmpBean;
     9 import dao.EmpDAO;
    10 
    11 @Service
    12 public class EmpBiz {
    13 
    14     @Autowired
    15     private EmpDAO edao;
    16     public void add(EmpBean eb) {
    17         edao.add(eb);
    18     }
    19     
    20     public void delete(int empNo) {
    21         edao.delete(empNo);
    22     }
    23     
    24     public void update(EmpBean eb) {
    25         edao.update(eb);
    26     }
    27     
    28     public List<EmpBean>findAll(){
    29         return edao.findAll();
    30     }
    31     
    32     public EmpBean findById(int empNo) {
    33         return edao.findById(empNo);
    34     }
    35 }
    36     

    4.controller包:

     1 package controller;
     2 
     3 import javax.servlet.http.HttpServletRequest;
     4 
     5 import org.springframework.beans.factory.annotation.Autowired;
     6 import org.springframework.stereotype.Controller;
     7 import org.springframework.web.bind.annotation.RequestMapping;
     8 
     9 import bean.EmpBean;
    10 import biz.EmpBiz;
    11 
    12 @Controller
    13 @RequestMapping("/emp")
    14 public class EmpController {
    15     @Autowired
    16     private EmpBiz eb;
    17     @RequestMapping("/add")
    18     public String add(EmpBean emp) {
    19         eb.add(emp);
    20         return "redirect:../index.jsp";
    21     }
    22     
    23     @RequestMapping("/find")
    24     public String findAll(HttpServletRequest request) {
    25         request.getSession().setAttribute("ALLEMP",eb.findAll());
    26         return "redirect:../index.jsp";
    27     }
    28     
    29     @RequestMapping("/delete")
    30     public String delete(int empNo) {
    31         eb.delete(empNo);
    32         return "redirect:../index.jsp";
    33     }
    34     
    35     @RequestMapping("/findbyid")
    36     public String findById(int empNo , HttpServletRequest request) {
    37         request.getSession().setAttribute("EMPBEAN", eb.findById(empNo));
    38         System.out.println("11111");
    39         return "redirect:../update.jsp";
    40     }
    41     
    42     @RequestMapping("/update")
    43     public String update(EmpBean emp) {
    44         eb.update(emp);
    45         System.out.println("22222222");
    46         return "redirect:../index.jsp";
    47     }
    48 }

    interrupt包:

     1 package interruptor;
     2 
     3 import javax.servlet.http.HttpServletRequest;
     4 import javax.servlet.http.HttpServletResponse;
     5 
     6 import org.springframework.web.servlet.HandlerInterceptor;
     7 import org.springframework.web.servlet.ModelAndView;
     8 
     9 //建立一个拦截器(类似于Filter)
    10 public class EncodeInterceptor implements HandlerInterceptor{
    11 
    12     @Override
    13     public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex)
    14             throws Exception {
    15     }
    16     
    17     @Override
    18     public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler,
    19             ModelAndView modelAndView) throws Exception {
    20     }
    21     @Override
    22     public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler)
    23             throws Exception {
    24         //针对post请求的编码集操作
    25         request.setCharacterEncoding("utf-8");
    26         response.setCharacterEncoding("utf-8");
    27         return true;
    28     }
    29     
    30 }

    第四步:页面处理(为了方便index.jsp只查了这张表的姓名和员工编号,如果想显示更多可以进行查询,方法雷同)这里一定要注意加上isELIgnored="false",不然查不出来,下午找了一下午错误,原来忘了加这句话,哈哈

    1.index.jsp:

     1 <%@ page language="java" pageEncoding="utf-8" isELIgnored="false" %>
     2 <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
     3 <html>
     4 <body>
     5     <c:if test="${empty ALLEMP}">
     6         <c:redirect url="emp/find.mvc"/>
     7     </c:if>
     8     
     9     <c:forEach var="ei" items="${ALLEMP}">
    10         ${ei.empNo}  ${ei.eName}
    11         <a href="emp/delete.mvc?empNo=${ei.empNo }">删除</a>
    12         <a href="emp/findbyid.mvc?empNo=${ei.empNo }">修改</a>
    13         <br/>
    14     </c:forEach>
    15 </body>
    16 </html>

    2.注册新员工页面:add.jsp:

     1 <%@ page language="java" pageEncoding="utf-8" isELIgnored="false"%>
     2 <html>
     3 <head>
     4 <title>注册新员工</title>
     5 <style type="text/css">
     6     table {
     7             margin: 0 auto;
     8             border: 1px  gray solid;
     9              70%;
    10     }
    11     td,th{
    12             border: 1px gray solid;
    13     }
    14 </style>
    15 </head>
    16 <body>
    17     <form action="emp/add.mvc" method="post">
    18         <table>
    19             <tr>
    20                     <h2 align="center">公司员工注册表</h2>
    21             </tr>        
    22             <tr>
    23                 <th>姓名</th>
    24                 <td>
    25                     <input type="text" name="eName"/>
    26                 </td>
    27             </tr>
    28             <tr>
    29                 <th>职位</th>
    30                 <td>
    31                     <input type="text" name="job"/>
    32                 </td>
    33             </tr>
    34             <tr>
    35                 <th>上司</th>
    36                 <td>
    37                     <input type="text" name="mgr"/>
    38                 </td>
    39             </tr>
    40             <tr>
    41                 <th>入职时间</th>
    42                 <td>
    43                     <input type="text" name="hireDate"/>
    44                 </td>
    45             </tr>
    46             <tr>
    47                 <th>薪资</th>
    48                 <td>
    49                     <input type="text" name="sal"/>
    50                 </td>
    51             </tr>
    52             <tr>
    53                 <th>奖金</th>
    54                 <td>
    55                     <input type="text" name="comm"/>
    56                 </td>
    57             </tr>
    58             <tr>
    59                 <th>部门</th>
    60                 <td>
    61                     <input type="text" name="deptNo"/>
    62                 </td>
    63             </tr>
    64             <tr>
    65                 <th colspan="1">
    66                     <input type="submit" values = "注册新员工"/>
    67                 </th>
    68             </tr>
    69         </table>
    70     </form>
    71 </body>
    72 </html>

    3.修改页面:update.jsp:

     1 <%@ page language="java"  pageEncoding="utf-8" isELIgnored="false"%>
     2 <html>
     3 <head>
     4 <title>修改员工信息</title>
     5 <style type="text/css">
     6 table {
     7     margin: 0 auto;
     8     border: 1px gray solid;
     9      70%;
    10 }
    11 td,th{
    12     border: 1px gray solid;
    13 }
    14 </style>
    15 
    16 </head>
    17 <body>19     <form action="emp/update.mvc" method="post">
    20         <input type="hidden" name="empNo" value="${EMPBEAN.empNo }"/>
    21         <table>
    22             <tr>
    23                 <h2 align="center">修改员工信息</h2>
    24             </tr>
    25             <tr>
    26                 <th>姓名</th>
    27                 <td>
    28                     <input type="text" name="eName" value="${EMPBEAN.eName }"/>
    29                 </td>
    30             </tr>
    31             <tr>
    32                 <th>职位</th>
    33                 <td>
    34                     <input type="text" name="job" value="${EMPBEAN.job }"/>
    35                 </td>
    36             </tr>
    37             <tr>
    38                 <th>上司</th>
    39                 <td>
    40                     <input type="text" name="mgr" value="${EMPBEAN.mgr }"/>
    41                 </td>
    42             </tr>
    43             <tr>
    44                 <th>入职时间</th>
    45                 <td>
    46                     <input type="text" name="hireDate" value="${EMPBEAN.hireDate }"/>
    47                 </td>
    48             </tr>
    49             <tr>
    50                 <th>薪金</th>
    51                 <td>
    52                     <input type="text" name="sal" value="${EMPBEAN.sal }"/>
    53                 </td>
    54             </tr>
    55             <tr>
    56                 <th>奖金</th>
    57                 <td>
    58                     <input type="text" name="comm" value="${EMPBEAN.comm }"/>
    59                 </td>
    60             </tr>
    61             <tr>
    62                 <th>部门</th>
    63                 <td>
    64                     <input type="text" name="daptNo" value="${EMPBEAN.deptNo }"/>
    65                 </td>
    66             </tr>
    67             <tr>
    68                 <th colspan="2">
    69                     <input type="submit" value="提交修改信息"/>
    70                 </th>
    71             </tr>
    72         </table>
    73     </form>
    74 
    75 </body>
    76 </html>

    以上四大步就是SpringMVC实现增删改查的具体操作。

    下面我们来进行测试:

    1.首先我们启动我们的服务器,然后访问我们的index.jsp页面(查找测试):

    2.访问add.jsp:并且填入新员工的信息(增加测试):

    点击提交:

    小仙女添加进来了

    然后点击修改进行修改测试:我们把小仙女改成老仙女

    修改完成。

    然后点击老仙女的删除(删除测试)

     

    删除成功。

    其实这个还可以加入BootStrap将页面进行美化操作

  • 相关阅读:
    https://www.cnblogs.com/marost/p/4668664.html
    UEFI 坑 Ubuntu
    Spring《六》管理Bean
    Spring《五》集合的注入方式
    Spring《四-一》解决自动装配的问题
    spring《四》自动装配
    Spring《三》ref 引用其他bean
    Spring《二》 Bean的生命周期
    Spring《一》
    Fragment间相互调用并传值
  • 原文地址:https://www.cnblogs.com/Tom-shushu/p/10165291.html
Copyright © 2011-2022 走看看