目录
- 回忆
- 操作部门表
- 创建部门表的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> </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页面
这个页面要进行回显数据
修改完成,点击保存,就会走这个接口
修改成功就会跳转到列表页面
以上就是一个修改的流程
删除部门
每一个列表数据后都有一个删除按钮
一点击删除按钮