JavaWeb--13 tlias-web-management 黑马程序员 部门管理(修改部门信息)

tlias

  • 1 需求分析和开发规范
  • 2 部门管理
    • 2.1 查询部门
    • 2.2 删除部门
    • 2.3 添加部门
    • 2.4 更新部门

1 需求分析和开发规范

需求说明–接口文档–思路分析–开发–测试–前后端联调

  1. 查看页面原型明确需求

    • 根据页面原型和需求,进行表结构设计、编写接口文档(已提供)
  2. 阅读接口文档

  3. 思路分析

  4. 功能接口开发

    • 就是开发后台的业务功能,一个业务功能,我们称为一个接口
  5. 功能接口测试

    • 功能开发完毕后,先通过Postman进行功能接口测试,测试通过后,再和前端进行联调测试
  6. 前后端联调测试

    • 和前端开发人员开发好的前端工程一起测试

1 开发规范-Restful

http://localhost:8080/users/1  GET:查询id为1的用户
http://localhost:8080/users    POST:新增用户
http://localhost:8080/users    PUT:修改用户
http://localhost:8080/users/1  DELETE:删除id为1的用户

在REST风格的URL中,通过四种请求方式,来操作数据的增删改查。

  • GET : 查询
  • POST :新增
  • PUT :修改
  • DELETE :删除

2 开发规范-统一响应结果 Result

package com.itheima.pojo;import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;@Data
@NoArgsConstructor
@AllArgsConstructor
public class Result {private Integer code;//响应码,1 代表成功; 0 代表失败private String msg;  //响应信息 描述字符串private Object data; //返回的数据//增删改 成功响应public static Result success(){return new Result(1,"success",null);}//查询 成功响应public static Result success(Object data){return new Result(1,"success",data);}//失败响应public static Result error(String msg){return new Result(0,msg,null);}
}

创建项目工程目录结构:

controller:控制层。存放控制器Controller
mapper:持久层/数据访问层。存放mybatis的Mapper接口
pojo:存放实体类
service:业务层。存放业务代码

第1步:准备数据库表
第2步:创建一个SpringBoot工程,选择引入对应的起步依赖
第3步:配置文件application.properties中引入mybatis的配置信息,准备对应的实体类
第4步:准备对应的Mapper、Service(接口、实现类)、Controller基础结构

在这里插入图片描述

2 部门管理

开发的部门管理功能包含:

  1. 查询部门
  2. 删除部门
  3. 新增部门
  4. 更新部门

2.1 查询部门

DeptController

@Slf4j
@RestController
public class DeptController {@Autowiredprivate DeptService deptService;//@RequestMapping(value = "/depts" , method = RequestMethod.GET)@GetMapping("/depts")public Result list(){log.info("查询所有部门数据");List<Dept> deptList = deptService.list();return Result.success(deptList);}
}

DeptService(业务接口)

public interface DeptService {/*** 查询所有的部门数据* @return   存储Dept对象的集合*/List<Dept> list();
}

DeptServiceImpl(业务实现类)

@Slf4j
@Service
public class DeptServiceImpl implements DeptService {@Autowiredprivate DeptMapper deptMapper;@Overridepublic List<Dept> list() {List<Dept> deptList = deptMapper.list();return deptList;}
}    

DeptMapper

@Mapper
public interface DeptMapper {//查询所有部门数据@Select("select id, name, create_time, update_time from dept")List<Dept> list();
}

在这里插入图片描述

在这里插入图片描述

2.2 删除部门

请求路径:/depts/{id}请求方式:DELETE接口描述:该接口用于根据ID删除部门数据

问题1:怎么在controller中接收请求路径中的路径参数?

@PathVariable

问题2:如何限定请求方式是delete?

@DeleteMapping

DeptController

@Slf4j
@RestController
public class DeptController {@Autowiredprivate DeptService deptService;@DeleteMapping("/depts/{id}")public Result delete(@PathVariable Integer id) {//日志记录log.info("根据id删除部门");//调用service层功能deptService.delete(id);//响应return Result.success();}//省略...
}

DeptService

public interface DeptService {/*** 根据id删除部门* @param id    部门id*/void delete(Integer id);
}

DeptServiceImpl

@Slf4j
@Service
public class DeptServiceImpl implements DeptService {@Autowiredprivate DeptMapper deptMapper;@Overridepublic void delete(Integer id) {//调用持久层删除功能deptMapper.deleteById(id);}}

DeptMapper

@Mapper
public interface DeptMapper {/*** 根据id删除部门信息* @param id   部门id*/@Delete("delete from dept where id = #{id}")void deleteById(Integer id);}

2.3 添加部门

  • 基本信息

    请求路径:/depts请求方式:POST接口描述:该接口用于添加部门数据
    

DeptController

@Slf4j
@RestController
public class DeptController {@Autowiredprivate DeptService deptService;@PostMapping("/depts")public Result add(@RequestBody Dept dept){//记录日志log.info("新增部门:{}",dept);//调用service层添加功能deptService.add(dept);//响应return Result.success();}}

DeptService

public interface DeptService {/*** 新增部门* @param dept  部门对象*/void add(Dept dept);}

DeptServiceImpl

@Slf4j
@Service
public class DeptServiceImpl implements DeptService {@Autowiredprivate DeptMapper deptMapper;@Overridepublic void add(Dept dept) {//补全部门数据dept.setCreateTime(LocalDateTime.now());dept.setUpdateTime(LocalDateTime.now());//调用持久层增加功能deptMapper.inser(dept);}}

DeptMapper

@Mapper
public interface DeptMapper {@Insert("insert into dept (name, create_time, update_time) values (#{name},#{createTime},#{updateTime})")void inser(Dept dept);}

2.4 更新部门

DeptController

@Slf4j
@RestController
public class DeptController {@Autowiredprivate DeptService deptService;@GetMapping("/{id}")public Result puts(@PathVariable Integer id){//调用service功能Dept dept=deptService.updateById(id);log.info("根据id{}更新部门{}",id,dept);//响应return Result.success(dept);}@PutMappingpublic Result update(@RequestBody Dept dept){log.info("修改部门");deptService.update(dept);//响应return Result.success();}}

DeptService

public interface DeptService {/*** 4 更新部门* @param id ,dept*/Dept updateById(Integer id);void update(Dept dept);}

DeptServiceImpl

@Slf4j
@Service
public class DeptServiceImpl implements DeptService {@Autowiredprivate DeptMapper deptMapper;@Overridepublic Dept updateById(Integer id) {return deptMapper.updateById(id);}@Overridepublic void update(Dept dept) {dept.setUpdateTime(LocalDateTime.now());deptMapper.update(dept);}}

DeptMapper

@Mapper
public interface DeptMapper {@Select("select * from dept where id= #{id}")Dept updateById(Integer id);@Update("update dept set name=#{name},update_time=#{updateTime} where id=#{id}")void update(Dept dept);}

使用postman 第一次是get请求,第二次是put请求
要与上述代码对应
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

测试前后端, 也是成功修改部门信息
在这里插入图片描述

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/696050.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

GT2712-STBD 三菱触摸屏12.1寸型

GT2712-STBD 三菱触摸屏12.1寸型 GT2712-STBD参数说明&#xff1a;12.1型, SVGA, TFT彩色液晶屏 65536色, 黑色边框, 电源DC24V。 一、三菱触摸屏GT2712-STBD性能规格&#xff1a; [显示部*1*2] . 显示软元件:TFT彩色液晶屏 . GT2712-STBD画面尺寸:12.1寸 . GT2712-STBD…

(项目)-KDE巡检报告(模板

金山云于12月26日对建行共计【30】个KDE集群,合计【198】台服务器进行了巡检服务。共发现系统风险【135】条,服务风险【1912】条,服务配置风险【368】条。 一、系统风险 1、风险分析(图片+描述) (1)磁盘使用率高 问题描述多个集群的多台服务器磁盘使用率较高,远超过…

2.数据类型与变量(java篇)

目录 数据类型与变量 数据类型 变量 整型变量 长整型变量 短整型变量 字节型变量 浮点型变量 双精度浮点型 单精度浮点型 字符型变量 布尔型变量&#xff08;boolean&#xff09; 类型转换 自动类型转换(隐式) 强制类型转换(显式) 类型提升 字符串类型 数据类…

Go实现树莓派控制舵机

公式说明 毫秒&#xff08;ms&#xff09;是时间的单位&#xff0c;赫兹&#xff08;Hz&#xff09;是频率的单位&#xff0c;而DutyMax通常是一个PWM&#xff08;脉冲宽度调制&#xff09;信号中表示最大占空比的值。以下是它们之间的关系和一些相关公式&#xff1a; 频率&…

从零开始学习Linux(6)----进程控制

1.环境变量 环境变量一般是指在操作系统中用来指定操作系统运行环境的一些参数&#xff0c;我们在编写C/C代码时&#xff0c;链接时我们不知道我们链接的动态静态库在哪里&#xff0c;但可以连接成功&#xff0c;原因是环境变量帮助编译器进行查找&#xff0c;环境变量通常具有…

/proc/modules文件

/proc/modules文件中列出了内核加载的所有模块的信息&#xff0c;与使用lsmod命令类似。 第一列&#xff1a;模块名称 第二列&#xff1a;模块使用的内存大小&#xff0c;单位是bytes 第三列&#xff1a;模块被load的次数 第四列&#xff1a;是否有其他模块依赖此模块&#…

Android 系统省电软件分析

1、硬件耗电 主要有&#xff1a; 1、屏幕 2、CPU 3、WLAN 4、感应器 5、GPS(目前我们没有) 电量其实是目前手持设备最宝贵的资源之一&#xff0c;大多数设备都需要不断的充电来维持继续使用。不幸的是&#xff0c;对于开发者来说&#xff0c;电量优化是他们最后才会考虑的的事情…

论文笔记:仅一个进程故障就无法达成共识

仅一个进程故障就无法达成共识 仅一个进程故障指的是在异步的分布式系统中 摘要 异步系统的共识问题&#xff08;consensus&#xff09;涉及一组进程&#xff0c;其中有的进程可能不可靠&#xff08;unreliable&#xff09;。共识问题要求可靠的进程一致地从两个侯选中决定&…

揭秘电子杂志制作流程,从零开始

​随着数字媒体的发展&#xff0c;电子杂志已经成为一种新型的传播媒介。今天&#xff0c;我将为你揭秘电子杂志的制作流程&#xff0c;带你从零开始&#xff0c;轻松入门。 第一步&#xff1a;确定主题和内容 在开始制作电子杂志之前&#xff0c;你需要确定一个主题&#xff…

实时追踪维修进度,报修管理小程序让你省心又省力!

随着生活、工作节奏的日益加快&#xff0c;日常的售后报修、故障报修处理流程给我们带来种种困扰。我们都知道大多数企业、个人用户还在使用传统报修方式&#xff0c;如电话报修、纸质报修单等方式&#xff0c;不仅效率低下&#xff0c;而且难以追踪维修进度&#xff0c;给我们…

思维导图怎么画?6个软件轻松教你自己画出思维导图

思维导图怎么画?6个软件轻松教你自己画出思维导图 思维导图是一种用来展示思维结构、组织信息和解决问题的图形化工具。它以中心主题为核心&#xff0c;通过分支节点展开相关子主题&#xff0c;形成树状结构&#xff0c;帮助用户更清晰地理解和表达思想。下面介绍的六款软件可…

RedisTemplate操作Redis详解之连接Redis及自定义序列化

连接到Redis 使用Redis和Spring时的首要任务之一是通过IoC容器连接到Redis。为此&#xff0c;需要java连接器&#xff08;或绑定&#xff09;。无论选择哪种库&#xff0c;你都只需要使用一组Spring Data Redis API&#xff08;在所有连接器中行为一致&#xff09;&#xff1a;…