[Java2023] Day10(上)-完成部门的增删改查

103 阅读1分钟

一.说明

  • 1.增删改查的接口在上编

  • 2.前端和Nginx被打包在一个文件, 在课件中, 所以按照文档直接写好接口就可以直接使用了

实现一个接口的流程

  • 1.在控制器deptController先定义一个Restful风格的接口, 如更新接口
  • 2.在DeptService接口类中定义接口
  • 3.在Service接口实现类(DeptServiceImpl)中实现接口
  • 4.在接口实现类中调用DAO层的映射类(DeptMapper)中的update方法来更新
  • 5.在映射类DeptMapper中,添加update方法,在@Update("注释")的注释中编写SQL进行更新

项目结构 image.png

二.代码实现

  • 1.控制器
package com.tlias.controller;

import com.tlias.pojo.Dept;
import com.tlias.pojo.Result;
import com.tlias.service.DeptService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

import java.util.List;
import java.util.logging.Logger;

@Slf4j
@RestController
public class DeptController {

    @Autowired
    private DeptService deptService;

    @GetMapping("/depts")
    public Result list() {
        List<Dept> deptList = deptService.list();
        return Result.success(deptList);
    }

    @DeleteMapping("/depts/{id}")
    public Result delete(@PathVariable Integer id) {
        log.info("根据ID删除部门", id);
        deptService.delete(id);
        return Result.success();
    }

    @PostMapping("/depts")
    public Result add(@RequestBody Dept dept) {
        log.info("新增部门:{}", dept);
        deptService.add(dept);
        return Result.success();
    }

    @PutMapping("/depts")
    public Result update(@RequestBody Dept dept)
    {
        deptService.update(dept);
        return Result.success();
    }


    @GetMapping("/depts/{id}")
    public Result view(@PathVariable Integer id)
    {
        Dept dept = deptService.view(id);
        return Result.success(dept);
    }

}
  • 2.服务类
package com.tlias.service;

import com.tlias.pojo.Dept;

import java.util.List;

public interface DeptService {

    /**
     * 用于查询全部部门
     * @return
     */
    List<Dept> list();

    void delete(Integer id);

    void add(Dept dept);

    void update(Dept dept);

    Dept view(Integer id);
}
  • 3.服务实现类
package com.tlias.service.impl;

import com.tlias.mapper.DeptMapper;
import com.tlias.pojo.Dept;
import com.tlias.service.DeptService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

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

@Service
public class DeptServiceImpl implements DeptService {

    // 调用部门管理的Mapper(Service调用DAO层)
    @Autowired
    private DeptMapper deptMapper;

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

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

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

    public void update(Dept dept)
    {
        dept.setUpdateTime(LocalDateTime.now());
        deptMapper.update(dept);
    }

    public Dept view(Integer id)
    {
        return deptMapper.view(id);
    }

}
  • 4.DAO映射类
package com.tlias.mapper;

import com.tlias.pojo.Dept;
import org.apache.ibatis.annotations.*;

import java.util.List;

@Mapper
public interface DeptMapper {

    /**
     * 查询全部部门
     * @return
     */
    @Select("select * from dept")
    List<Dept> list();

    @Delete("delete from dept where id = #{id}")
    void deleteById(Integer id);

    @Insert("insert into dept (name, create_time, update_time) VALUES (#{name}, #{createTime}, #{updateTime})")
    void add(Dept dept);

    @Update("update dept set name = #{name}, update_time = #{updateTime} where id=#{id}")
    void update(Dept dept);

    @Select("select  * from dept where id=#{id}")
    Dept view(Integer id);
}