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

相关推荐
金銀銅鐵1 小时前
[Java] 用 GUI 展示 EnumSet 增减元素时的内部变化(下)
java·后端·ai编程
AI人工智能+电脑小能手1 小时前
一次请求打几个下游,这个Java并行任务工具类6个方法按序聚合
java·线程池·并发编程·1024程序员节·批量处理·并行任务
paopaokaka_luck3 小时前
心理咨询管理系统(WebSocket实时沟通、基于用户的协同过滤、 ECharts多维分析、 预约业务流程、预约校验与定时处理)
java·vue.js·spring boot·mysql·spring·echarts·1024程序员节
2301_32241428043 小时前
springboot农产品交易平台的设计与实现08055-计算机毕设 原创(免费领源码+部署教程+开发环境)
java·spring boot·redis·mysql·tomcat·maven·mybatis
小成202303202654 小时前
C++~07补充
开发语言·c++
考虑考虑4 小时前
JDK26的JEP 500属性
java·后端·java ee
LMT流氓兔4 小时前
第五单元——第十二课:把脚本整理成项目
java·数据库·python·langchain·1024程序员节
yuniko-n4 小时前
【JUC】四种内存屏障示例
java·1024程序员节
念何架构之路6 小时前
Go reflect 包:结构体反射 —Field、Tag 与 VisibleFields
java·数据库·golang