当前位置: 首页 > news >正文

案例-05.部门管理-新增

一.新增部门-需求

二.部门管理-需求说明

三.添加部门-接口文档

响应数据

请求参数是一个Json格式的数据,因此要使用@RequestBody来修饰对象用来接受前端传过来的Json格式的数据,而Dept类中含有name属性,因此使用Dept的类的实例化对象来接受Json格式的数据。 

四.Controller层

package com.gjw.controller;

/**
 * 部门管理Controller
 */

import com.gjw.anno.Log;
import com.gjw.pojo.Dept;
import com.gjw.pojo.Result;
import com.gjw.service.DeptService;
import com.gjw.service.impl.DeptServiceImpl;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

import java.util.List;

@Slf4j // 记录日志使用
@RestController
@RequestMapping("/depts")
public class DeptController {
    @Autowired
    private DeptService deptService;

//    @RequestMapping(value = "/depts",method = RequestMethod.GET)   指定请求方式为GET
    @GetMapping()   // 指定请求方式为GET
    public Result list(){
        log.info("查询全部部门数据");

        // 调用service层查询全部部门数据
        List<Dept> deptList = deptService.list();
        return Result.success(deptList);
    }

    @DeleteMapping("{id}")  // 指定请求方式为DELETE
    public Result delete(@PathVariable Integer id) throws Exception {
        log.info("根据id删除部门:{}",id);

        // 调用service删除部门
        deptService.deleteById(id);
        return Result.success();
    }

    @PostMapping()      // 指定请求方式为Post
    public Result add(@RequestBody Dept dept) { //RequestBody注解可以将前端在请求时所传递的json格式的数据封装成一个实体类来接受
        log.info("新增部门:{}",dept);

        // 调用service新增部门
        deptService.add(dept);
        return Result.success();
    }
}

list()方法,delete()方法和add()方法的url地址都含有“depts”字段,为了使代码变得更加简洁,我们将“depts”字段使用@RequestMapping注解将"/depts"提出来简化代码。

五.Service层 

package com.gjw.service.impl;

import com.gjw.mapper.DeptLogMapper;
import com.gjw.mapper.DeptMapper;
import com.gjw.mapper.EmpMapper;
import com.gjw.pojo.Dept;
import com.gjw.pojo.DeptLog;
import com.gjw.service.DeptLogService;
import com.gjw.service.DeptService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

import java.time.LocalDateTime;
import java.util.List;

@Service
public class DeptServiceImpl implements DeptService {

    @Autowired
    private DeptMapper deptMapper;

    

    @Override
    public List<Dept> list() {
        return deptMapper.list();
    }

    @Override
    public void deleteById(Integer id) {
        deptMapper.deleteById(id);
    }

    @Override
    public void add(Dept dept) {
        dept.setCreateTime(LocalDateTime.now());
        dept.setUpdateTime(LocalDateTime.now());
        deptMapper.insert(dept);
    }
}

在service层要增加Dept的实现类对象的创建时间和更新时间这两个属性。 

六.mapper层

package com.gjw.mapper;

import com.gjw.anno.Log;
import com.gjw.pojo.Dept;
import org.apache.ibatis.annotations.*;

import java.util.List;

/**
 * 部门管理
 */
@Mapper
public interface DeptMapper {
    /**
     * 查询全部部门数据
     * @return
     */

    @Select("select * from dept")
    List<Dept> list();


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

    /**
     * 根据部门名称添加部门
     * @param dept
     */
    @Insert("insert into dept(name, create_time, update_time) VALUES (#{name},#{createTime},#{updateTime})")
    void insert(Dept dept);
}

将新创建的Dept类的实现类对象加入到数据库当中。 

相关文章:

  • 数据大屏炫酷UI组件库:B端科技风格PSD资源集
  • RISC-V平台编译 state-thread x264 ffmpeg zlog
  • 分布式光纤传感:为生活编织“感知密网”
  • Node.js 中的 Event 模块详解
  • 【JavaEE进阶】Spring Boot日志
  • java断点调试(debug)
  • 人工智障的软件开发-自动流水线CI/CD篇-docker+jenkins部署之道
  • Spring Boot应用开发
  • C++:构造函数和析构函数
  • 机器学习--实现多元线性回归
  • 【重构谷粒商城】06:Maven快速入门教程
  • 【BUUCTF】[网鼎杯 2018]Comment
  • 通俗诠释 DeepSeek-V3 模型的 “671B” ,“37B”与 “128K”,用生活比喻帮你理解模型的秘密!
  • 【股票数据API接口25】如何获取最近10天历史成交分布数据之Python、Java等多种主流语言实例代码演示通过股票数据接口获取数据
  • 自己部署 DeepSeek 助力 Vue 开发:打造丝滑的折叠面板(Accordion)
  • 智能设备监控:AI 与 Python 助力设备管理的未来
  • 【Linux】Ubuntu Linux 系统——Python集成开发环境
  • 非线性动力学笔C5.2线性系统的分类
  • React使用 useImperativeHandle 自定义暴露给父组件的实例方法(包括依赖)
  • Deepseek实用万能提问模板
  • 今年一季度全国城镇新增就业308万人,就业形势保持总体稳定
  • 企业取消“大小周”引热议,半月谈:不能将显性加班变为隐性加班
  • 吕国范任河南省人民政府副省长
  • 涨价应对关税变化是短期之策,跨境电商塑造新品牌开辟“新蓝海”
  • 江西省宁都县政协原二级调研员谢亦礼被查
  • 上海经信委:将推动整车企业转型,加强智能驾驶大模型等创新应用