tlias的部门的增删改查操作

  1. 查询操作:

controllor层:

java 复制代码
@RestController
public class DeptController {
    @Autowired
    private DeptService deptService;


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

Service层:

java 复制代码
@Service
public class DeptServiceimpl implements DeptService {
    @Autowired
    private DeptMapper deptMapper;
    @Override
    public List<Dept> findAll() {
        return deptMapper.findAll();
    }
}

Mapper层:

java 复制代码
@Mapper
public interface DeptMapper {

    @Select("select id, name, create_time, update_time from dept order by update_time")
    List<Dept> findAll();
}

由于select中的create_time和update_time与实体类中的dept不同,所以查询出来的结果为空,如下图所示:

方法:

这三种方法都可以,建议使用开启驼峰命名

前后端联调:

Nginx的反向代理

2.根据id删除数据

方法一:要在url中带id,否则接口报错

方法二:

当注释了@RequestPara注解,该参数必须传递,接口后必须为/depts?id=?不然删除不成功,接口返回失败,可以设置required为false来关闭这个

方法三:省略@RequsetParam

url带不带id,接口都可以获取成功

新增部门:

@ResponseBody是将对象转为json格式传到客户端

用@RequestBody将json格式数据封装入Dept中,与上面区分开来

controller:

java 复制代码
@PostMapping ("/depts")
    public Result add(@RequestBody Dept dept){
        System.out.println("新增部门"+dept);
        deptService.add(dept);
        return Result.success();
    }

Service:

java 复制代码
@Override
    public void add(Dept dept) {
        //1.完善创建事件
        dept.setCreateTime(LocalDateTime.now());
        dept.setUpdateTime(LocalDateTime.now());
        deptMapper.insert(dept);
    }

Mapper层:

java 复制代码
@Insert("insert into dept(name, create_time, update_time) values(#{name}, #{createTime}, #{updateTime})")
    void insert(Dept dept);

3.修改数据

分两部:1.查询回显 2.修改数据

查询回显需要用到路径参数:用到PathVariable,如果参数值名称和路径参数id相同则可以省略其中的("id")

回显部分:

controller:

java 复制代码
@GetMapping("/depts/{id}")
    public Result getInfo(@PathVariable Integer id){
        System.out.println("根据id查询部门:" +id);
        Dept dept = deptService.getById(id);
        return Result.success(dept);
    }

Service:

java 复制代码
@Override
    public Dept getById(Integer id) {
        Dept dept = deptMapper.getById(id);
        return dept;
    }

Mapper:

java 复制代码
@Select("select id,name,dept.create_time,dept.update_time from dept where id = #{id}")
    Dept getById(Integer id);

2.数据修改:

controller:

java 复制代码
@PutMapping("/depts")
    public Result update(@RequestBody Dept dept){
        System.out.println("修改的部门" + dept);
        deptService.update(dept);
        return Result.success();
    }

Service:

java 复制代码
@Override
    public void update(Dept dept) {
        dept.setUpdateTime(LocalDateTime.now());
        deptMapper.update(dept);
    }

Mapper:

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

总结:

公共的路径都是/depts上可以抽取到类上

相关推荐
Ray Liang1 小时前
用六边形架构与整洁架构对比是伪命题?
java·python·c#·架构设计
Java水解1 小时前
Java 中间件:Dubbo 服务降级(Mock 机制)
java·后端
SimonKing5 小时前
OpenCode AI辅助编程,不一样的编程思路,不写一行代码
java·后端·程序员
FastBean5 小时前
Jackson View Extension Spring Boot Starter
java·后端
Seven977 小时前
剑指offer-79、最⻓不含重复字符的⼦字符串
java
皮皮林55116 小时前
Java性能调优黑科技!1行代码实现毫秒级耗时追踪,效率飙升300%!
java
冰_河16 小时前
QPS从300到3100:我靠一行代码让接口性能暴涨10倍,系统性能原地起飞!!
java·后端·性能优化
桦说编程19 小时前
从 ForkJoinPool 的 Compensate 看并发框架的线程补偿思想
java·后端·源码阅读
躺平大鹅21 小时前
Java面向对象入门(类与对象,新手秒懂)
java