小工具知识网

当前位置: 首页 > 行业知识 > JavaWeb--15 tlias-web-management 黑马程序员 部门管理(修改部门信息)

行业知识

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

2026-11-15 21:02:48 来源:互联网转载

tlias

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

      1 需求分析和开发规范

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

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

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

        • 思路分析

        • 功能接口开发

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

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

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

      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@AllArgsConstructorpublic 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:控制层。存放控制器Controllermapper:持久层/数据访问层。存放mybatis的Mapper接口pojo:存放实体类service:业务层。存放业务代码

        第1步:准备数据库表

        第2步:创建一个SpringBoot工程,选择引入对应的起步依赖

        第3步:配置文件application.properties中引入mybatis的配置信息,准备对应的实体类

        第4步:准备对应的Mapper、Service(接口、实现类)、Controller基础结构

        2 部门管理

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

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

        2.1 查询部门

        DeptController

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

        DeptService(业务接口)

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

        DeptServiceImpl(业务实现类)

        @Slf4j@Servicepublic class DeptServiceImpl implements DeptService {    @Autowired    private DeptMapper deptMapper;        @Override    public List list() {        List deptList = deptMapper.list();        return deptList;    }}    

        DeptMapper

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

        2.2 删除部门

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

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

        @PathVariable

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

        @DeleteMapping

        DeptController

        @Slf4j@RestControllerpublic class DeptController {    @Autowired    private 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@Servicepublic class DeptServiceImpl implements DeptService {    @Autowired    private DeptMapper deptMapper;    @Override    public void delete(Integer id) {        //调用持久层删除功能        deptMapper.deleteById(id);    }    }

        DeptMapper

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

        2.3 添加部门

        • 基本信息

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

          DeptController

          @Slf4j@RestControllerpublic class DeptController {    @Autowired    private 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@Servicepublic class DeptServiceImpl implements DeptService {    @Autowired    private DeptMapper deptMapper;    @Override    public void add(Dept dept) {        //补全部门数据        dept.setCreateTime(LocalDateTime.now());        dept.setUpdateTime(LocalDateTime.now());        //调用持久层增加功能        deptMapper.inser(dept);    }}

          DeptMapper

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

          2.4 更新部门

          DeptController

          @Slf4j@RestControllerpublic class DeptController {    @Autowired    private 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);    }    @PutMapping    public 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@Servicepublic class DeptServiceImpl implements DeptService {    @Autowired    private DeptMapper deptMapper;@Override    public Dept updateById(Integer id) {        return deptMapper.updateById(id);    }    @Override    public void update(Dept dept) {        dept.setUpdateTime(LocalDateTime.now());        deptMapper.update(dept);    }}

          DeptMapper

          @Mapperpublic 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请求

          要与上述代码对应

          测试前后端, 也是成功修改部门信息

上一篇:揭秘PWM,专业解析助你轻松掌握PWM概念!

下一篇:服务器前置硬盘 插在哪里?