javaee的OA项目(二) 实现对部门的增删改查

2021-06-17 19:28:20 浏览数 (1)

目录

  • 回忆
  • 操作部门表
    • 创建部门表的Javabeen,也就是创建实体类
    • 实现新增部门
      • mapper层
      • service层
      • servlet层
      • 前端传值(servlet层代码的书写,要结合页面)
        • 部门新增的页面
    • 查询部门的信息
        • 改HTML页面为jsp页面
    • 修改部门
      • 修改按钮
    • 删除部门

回忆

我们已经搭建了javaee的项目架构,并且静态页面也可以访问了,现在我们开始利用代码操作数据库了

操作部门表

只是利用servlet技术对部门表进行增删改查

我们从数据库找到部门表

这个表里面就有3个字段,现在我们就要用java代码对部门表里面的这3个字段进行增删改查

创建部门表的Javabeen,也就是创建实体类

我们数据库有这个部门表,我们java里面要创建一个Javabeen对象,和部门表一一对应。

以上就一一对应上了

实现新增部门

mapper层

已经有Javabeen实体类了。我们先写mapper层,这个层是最底层,意思是和数据库之间关联的,就是代码操作数据库的所有写在这一层。

service层

servlet层

这一个文件里面就会写完 对一个表的增删改查的接口,意思就是以后我们写的时候,一个servlet文件,里面就是操作一个表,就对应一个表。

这个servlet里面的代码是

代码语言:javascript复制
package com.servlet;

import com.entity.Dept;
import com.google.gson.Gson;
import com.service.DeptService;
import com.service.Impl.DeptServiceImpl;


import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.util.List;

@WebServlet("/com/DeptServlet")
public class DeptServlet extends HttpServlet {
    private DeptService deps = new DeptServiceImpl();


    @Override
    protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        req.setCharacterEncoding("utf-8");
        resp.setContentType("text/html;charset=utf-8");
        String method = req.getParameter("method");
        if ("saveDept".equals(method)){
            saveDept(req,resp);
        }else if("findAllDept".equals(method)){
            findAllDept(req,resp);
        }else if("findOneDept".equals(method)){
            findOneDept(req,resp);
        }else if("updateDept".equals(method)) {
            updateDept(req, resp);
        }else if("removeDept".equals(method)) {
            removeDept(req, resp);
        }else if("ajaxfindallDept".equals(method)) {
            ajaxfindallDept(req, resp);
        }
    }


//    添加部门方法
    protected  void saveDept(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException{
        req.setCharacterEncoding("utf-8");
        int deptno = Integer.parseInt(req.getParameter("deptno"));
        String deptname = req.getParameter("deptname");
        System.out.println(deptname);
        String location = req.getParameter("location");
        System.out.println(location);
        Dept dept = new Dept(deptno, deptname, location);



        int save = deps.save(dept);
        if(save>0){

           返回列表
        }else{
            req.setAttribute("msg","错误");

            req.getRequestDispatcher("/deptAdd.html");
        }


    }


}

我们javaee项目,就是原生的web项目。每一个接口都需要继承HttpServlet,重写这个父类的service方法。但是现在我们变了,根据不同的条件,调用不同的方法,就可以实现不同的功能。现在就变为

写一个类,继承HttpServlet,重写一次service方法,那么之后在这个service方法里面根据不同的条件进行判断,调用不同的方法,实现对一个表的增删改查。

如果不这样写,我们如果按照之前的那种,一个新增的接口,继承HttpServlet,重写这个父类的service方法,一个修改的接口,继承HttpServlet,重写这个父类的service方法。等其他的,那样代码太多,每一个接口都需要继承。好麻烦。所以,现在改为了这样。

前端传值(servlet层代码的书写,要结合页面)

我们前端HTML页面是需要调用接口,也就是servlet层的代码,才可以实现和数据库的操作。

现在我们要写servlet层的代码,所以我们首先要看的是页面往后端咋传值,要结合页面的情况来写servlet层的java代码。

现在开始分析HTML页面

部门新增的页面

我们现在要写的接口是部门新增,所以找到这个部门新增的页面

代码语言:javascript复制
<body>

	<div class="place">
    <span>位置:</span>
    <ul class="placeul">
    <li><a href="#">人事管理</a></li>
    <li><a href="#">添加部门</a></li>
    </ul>
    </div>
    
    <div class="formbody">
    
    <div class="formtitle"><span>基本信息</span></div>
    <form action="com/DeptServlet?method=saveDept" method="post">
        <ul class="forminfo">
            <li><label>部门编号</label><input name="deptno" type="text" class="dfinput" /> </li>
            <li><label>部门名称</label><input name="deptname" type="text" class="dfinput" /> </li>
            <li><label>办公地点</label><input name="location" type="text" class="dfinput" /></li>
            <li><label>&nbsp;</label><input name="" type="submit" class="btn" value="确认保存"/></li>
        </ul>
    </form>
    
    </div>


</body>

部门新增的HTML页面可以这样写,也有其他的写法,现在使用以上的写法。意思是前段页面就是以上的写法。

之后提交之后,后端进行接收,保存到数据库就可以了。

查询部门的信息

mapper层 service层 都和新增一样,写对应的代码就可以

servlet层,就写部门查询的接口,这个需要和页面关联起来写

现在我们需要改部门列表的HTML页面,变为jsp页面,这样就可以接收后端传到页面的值。现在开始改页面,改为jsp页面。

改HTML页面为jsp页面

只需要将HTML页面的前几行,改为

代码语言:javascript复制
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <base href=" <%=request.getContextPath() "/"%>">

然后将HTML的后缀改为jsp.。那么当前的页面就会改为jsp页面

在jsp页面,我们想要接收后端传过来的数据,我们可以使用jstl这个工具。所以,我们需要在jsp页面导入这个jstl工具

代码语言:javascript复制
<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>

以上代码就是导入jstl工具,prefix属性的意思是别名,你可以自己起一个名字,一般写c就可以了。 意思是以后要使用这个工具里面的方法,需要在这个c标签里面.举个例子

要使用jstl 工具里面的遍历的方法,需要这样写,要写在这个jstl标签里面

修改部门

每一个列表数据后面都有一个修改按钮,

我们点击这个按钮,首先要到修改的页面,在这个修改的页面,对应的数据要回显回来,所以我们点击了这个接口,要走一个后端接口,这个接口就是查询出对应的数据,然后返回到修改的页面,进行展示,既然这个修改的页面要展示后端查询出来的数据,所以这个修改的页面需要是jsp页面,只有jsp页面才可以展示后端传过来的数据

修改按钮

一点击这个修改按钮,走后端的接口。我们现在看这个接口

这个接口把数据查询出来,然后返回到修改的jsp页面

这个页面要进行回显数据

修改完成,点击保存,就会走这个接口

修改成功就会跳转到列表页面

以上就是一个修改的流程

删除部门

每一个列表数据后都有一个删除按钮

一点击删除按钮

0 人点赞