目录

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

回忆

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

操作部门表

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

我们从数据库找到部门表

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

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

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



以上就一一对应上了

实现新增部门

mapper层

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

service层


也就是我们写了公共类,这个类里面会获取mybatis.xml对象,就是和数据库连上了,这个公共类里面有个方法,就可以获取到mapper层的对象,用这个对象就可以调用mapper接口里面的方法,进行操作数据库

servlet层


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

这个servlet里面的代码是

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();@Overrideprotected 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页面

部门新增的页面

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

<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页面的前几行,改为

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head><base href=" <%=request.getContextPath()+"/"%>">

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

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

<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>

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

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

修改部门

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


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

修改按钮


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


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


这个页面要进行回显数据



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



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

以上就是一个修改的流程

删除部门

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


一点击删除按钮



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

  1. ASP.NET中新建MVC项目并连接SqlServer数据库实现增删改查

    场景 ASP.NET中MVC编程模式简介与搭建HelloWorld项目: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/10679 ...

  2. javaweb增删改查实例_JavaWeb图像可视化管理系统之后台搭建(二)用户管理与增删改查(内含代码)...

    上一篇文章中,我们介绍了环境配置与后台设计,对于不了解的同学,可以看这个链接 CharlesDDDD:JavaWeb图像可视化管理系统之后台搭建(一)环境配置与后台设计​zhuanlan.zhihu. ...

  3. .net mvc html访问数据库,ASP.NET中新建MVC项目并连接SqlServer数据库实现增删改查

    场景 ASP.NET中MVC编程模式简介与搭建HelloWorld项目: 在上面使用MVC搭建起来Hello World项目后,怎样连接SqlServer数据库并实现增删改查. 这里使用的是Visua ...

  4. mysql数据库增删改查关键字_MySQL数据库(二)-数据库的增删改查

    简介: 以下是MySQL最基本的增删改查语句.在进行"增删改查"的操作之前,先建立一个包含数据表student的数据库,新建表grade(具体操作可以见上一篇). 一."增"-添加 ...

  5. Django 02 :部门管理 【面板设计(Bootstrap)+部门的增删改查(Django+MySQL)】

    主题:用户管理系统 文章目录 一.新建项目 1.创建Django项目 2.创建并注册app 3.设计表结构 4.在MySQL中生成表 4.1.连接MySQL,生成数据库 4.2.修改配置文件(连接My ...

  6. MySQL基础(二)-数据的基本操作【增删改查】

    目录 前言: MySQL的数据文件 MyISAM类型的表文件 InnoDB类型的表文件 一.插入数据记录 - insert 1.插入单行数据 2.插入多行数据 3.将查询结果插入到新表中 二.更新数据 ...

  7. Mysql (二)Mysql 数据库表增删改查

    一.表操作DDL 1.[增加] create table DBname.table_name(id int, namevarchar(255))engine=MyISAM charset=gbk; 2 ...

  8. mysql 两表连接删除数据库_Mysql (二)Mysql 数据库表增删改查

    一.表操作 1.[增加] create table DBname.table_name(id int, namevarchar(255))engine=MyISAM charset=gbk; 2.[删 ...

  9. 【达内课程】SQLite(二)中现成的增删改查方法

    文章目录 新增数据 insert() 删除数据 delete() 查询 栗子:使用 CursorAdapter 显示数据查询结果 除了使用 sql 语句,SQLiteDatabase 中提供了一个现成 ...

最新文章

  1. ORA-20011 ORA-29913 KUP-11024 GATHER_TABLE_STATS
  2. java runtime environment 官网_Java Runtime Environment SE Development Kit
  3. NOIp #2011
  4. mysql安装时损坏的图像_在PHP中从MySQL获取图像会导致图像损坏
  5. 【转】彻底搞清计算结构体大小和数据对齐原则
  6. 高程数据处理_珠峰长高了吗?新高程怎么算出来的?揭秘
  7. 循环斐波那契数列_每日一课 | 斐波那契数列的第n个项
  8. Bind Service 不会在后台无限期的一直运行
  9. 内部办公网与IDC机房的GRE隧道配置实践
  10. Can't create new folder in windows7
  11. 全国大学生软件测试大赛Web应用测试(八)Web众包测试具体流程
  12. java环境变量配置和android sdk环境变量配置
  13. bxt是什么意思,是什么意思
  14. java 黑马头条 day4 自媒体文章发布 自媒体文章列表查询 频道列表展示 自媒体文章-发布、修改、保存草稿 自媒体文章-根据id查询 自媒体文章-删除
  15. 全民推荐时代已经到来!SaaS联盟推广计划如何开展?
  16. LZY的计算器(暴力)
  17. 方舟服务器怎么请求芯片,方舟指令哔哩芯片这么获得?哔哩芯片获得方法详解分享...
  18. 谈谈自己对文件描述符的理解
  19. 推动人工智能产业创新发展 2019中国人工智能创新创业大赛圆满成功
  20. 神经网络Python实现(9行代码)

热门文章

  1. Android 如何设置视频来电的默认铃声
  2. 比尔盖茨致青年的黄金准则(双语)
  3. PTA-7-8 冒泡法排序
  4. bash ${ } 变量替换用法总结
  5. Coursera - AI for everyone week4 quiz
  6. 现在还有多少java程序员是40岁以上的,他们都干嘛去了?
  7. JS中的location属性
  8. 到底什么是分布式系统?你需要了解这些
  9. 一文了解下 GANs可以做到的事情
  10. SpringMVC指定静态资源路径