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  2   xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
 3   4.0.0
 4   web01
 5   lianxicrud
 6   war
 7   0.0.1-SNAPSHOT
 8   lianxicrud Maven Webapp
 9   http://maven.apache.org
10   
11     
12       junit
13       junit
14       3.8.1
15       test
16     
17     
18     
19         javax.servlet
20         jstl
21         1.2
22     
23     
24     
25         javax.servlet
26         javax.servlet-api
27         4.0.1
28         provided
29     
30     
31     
32         org.springframework
33         spring-web
34         5.0.8.RELEASE
35     
36     
37     
38         org.springframework
39         spring-webmvc
40         5.0.8.RELEASE
41     
42     
43     
44         org.springframework
45         spring-jdbc
46         5.0.8.RELEASE
47     
48     
49     
50         mysql
51         mysql-connector-java
52         5.1.47
53     
54   
55   
56     lianxicrud
57   
58 

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

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

 1 
 2  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     package="controller" />
12     package="dao" />
13     package="biz" />
14     
15     
16     class="org.springframework.jdbc.datasource.DriverManagerDataSource">
17         
18         
19         
20         
21     
22     
23     24         class="org.springframework.jdbc.core.JdbcTemplate">
25         
26     
27     
28     29         class="org.springframework.web.servlet.view.InternalResourceViewResolver">
30         
31         
32     
33     
34     
35         class="interruptor.EncodeInterceptor"/>
36     
37     
38 

web.xml:

 1 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 
 6   Archetype Created Web Application
 7   
 8       springMVC
 9       class>org.springframework.web.servlet.DispatcherServletclass>
10   
11   
12       springMVC
13     *.mvc
14   
15 

第三步:编写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 ListfindAll(){
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{
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 ListfindAll(){
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 
 4 
 5     if test="${empty ALLEMP}">
 6         
 7     if>
 8     
 9     
10         ${ei.empNo}  ${ei.eName}
11         删除
12         修改
13         
14
15 16

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

 1 <%@ page language="java" pageEncoding="utf-8" isELIgnored="false"%>
 2 
 3 
 4 注册新员工
 5 
15 
16 
17     
18 1920

公司员工注册表

212223242728293033343536394041424546474851525354575859606364656869
姓名 25 26
职位 31 32
上司 37 38
入职时间 43 44
薪资 49 50
奖金 55 56
部门 61 62
66 67
70
71 72

3.修改页面:update.jsp:

 1 <%@ page language="java"  pageEncoding="utf-8" isELIgnored="false"%>
 2 
 3 
 4 修改员工信息
 5 
15 
16 
17 19     
20 21 2223

修改员工信息

242526273031323336373839424344454849505154555657606162636667687172
姓名 28 29
职位 34 35
上司 40 41
入职时间 46 47
薪金 52 53
奖金 58 59
部门 64 65
69 70
73
74 75 76

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

下面我们来进行测试:

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

springMVC实现增删改查_第1张图片

2.访问add.jsp:并且填入新员工的信息(增加测试):springMVC实现增删改查_第2张图片

点击提交:

springMVC实现增删改查_第3张图片

小仙女添加进来了

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

springMVC实现增删改查_第4张图片

修改完成。

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

 springMVC实现增删改查_第5张图片

删除成功。

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

 

你可能感兴趣的:(springMVC实现增删改查)