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上可以抽取到类上

相关推荐
long3162 分钟前
封装(Encapsulation)
java·人工智能·ai·ai编程
SomeB1oody2 分钟前
【RustyML入门】7.2. 深入模型持久化
开发语言·后端·机器学习·rust·教程
yaoxin5211233 分钟前
502. Java 反射 - 编写 MessageInterceptor 类
java·开发语言
wuyk5557 分钟前
Python零基础入门第五章:元组Tuple(不可变容器详解、列表与元组区别)
开发语言·python
风流 少年7 分钟前
Spring AI 2.0:阿里云百炼平台(工作流应用)
java·后端·spring
长谷深风11113 分钟前
AI Tool 设计:粒度、参数与错误恢复怎么做
java·大数据·人工智能·ai agent·agent工作流·智能体设计·ai产品设计
2601_9657984714 分钟前
Build a Fast, High-Ranking Restaurant Website with Rolanda Theme
开发语言·ios·swift
caimouse18 分钟前
ReactOS 窗口系统分析(25):标题栏显示与系统按钮 — nonclient.c 标题栏专题
c语言·开发语言
诺伦23 分钟前
Rust 错误处理实战:从 unwrap 到优雅 Result 的进阶之路
开发语言·后端·rust
caimouse1 小时前
ReactOS 窗口系统分析(14):计时器/属性/加速键/热键 — timer.c + prop.c + accelerator.c + hotkey.c
c语言·开发语言·reactos