【一周学完苍穹外卖】Day2员工分页查询以及修改员工信息

目录

员工分页查询

需求分析

SQL

PageHelper类

下载插件MyBatisX

启用/禁用员工账号

一开始没有用注解,没有提取出前端status的值

    2.在接口实现类那里,employee类的初始化方式

3.在.xml配置SQL语句时

修改员工信息

导入菜品分类代码


员工分页查询

需求分析

SQL

        这里需要用到动态语句查询,就不用前面的注解了,在.xml配置文件里面写SQL语句

PageHelper类

PageHelper.startPage(employeePageQueryDTO.getPage(), employeePageQueryDTO.getPageSize());

此代码会使后续执行的第一条 SQL 语句自动添加上分页逻辑,等价于在 SQL 中添加LIMIT offset, pageSize

下载插件MyBatisX

能辅助识别SQL代码

楼主的bug:

  1. 在SQL语句这里把from写成了form,排错排了好久,谁懂
  2. 在Controller类里@GetMapping("/page")写成了@PostMapping("/page")

    这里回顾一下get方法和post方法

根据业务需求选择合适的注解:查询操作优先用@GetMapping,提交数据优先用@PostMapping

启用/禁用员工账号

这一块楼主没有跟着一句一句敲,自己尝试看着接口文档写了一下,碰到了几个问题

@PostMapping("/status/{status}")
@ApiOperation(value="启用或禁用员工id")
    public Result startOrNot (@PathVariable("status") int status,Long id){
        log.info("禁用或启用的员工id为{}", id);
        employeeService.startOrNot(status,id);
        return Result.success();
    }
  1. 一开始没有用注解,没有提取出前端status的值

   @PathVariable 是 Spring 框架中的一个注解,它的作用是从 URL 的路径里获取变量值。在你给出的代码里,@PathVariable("status") int status 会把 URL 路径中的 {status} 部分的值提取出来,并且将其赋给方法参数 status

    2.在接口实现类那里,employee类的初始化方式

 public void startOrNot(int status, Long id){
    //方法一:简单且繁琐的方法
//        Employee employee=new Employee();
//        employee.setStatus(status);
//        employee.setId(id);
    //方法二:
        Employee employee = Employee.builder()
                        .status(status)
                        .id(id)
                        .build();
        employeeMapper.update(employee);


}

利用builder注解,可以很方便地创建实体;

3.在.xml配置SQL语句时

<update id="update" parameterType="com.sky.entity.Employee">
        update employee
        <set>
        <if test="name!=null">name = #{name},</if>

            <if test="username!=null">username = #{username},</if>
            <if test="status!=null">status = #{status},</if>
            <if test="password!=null">password = #{password},</if>
            <if test="phone!=null">phone = #{phone},</if>
            <if test="sex!=null">sex = #{sex},</if>
            <if test="idNumber!=null">idNumber = #{idNumber},</if>
            <if test="updateTime!=null">update_time = #{updateTime},</if>
            <if test="updateUser!=null">update_user = #{updateUser},</if>
        </set>
        where id = #{id}
    </update>

在 MyBatis 的映射文件里,parameterType="com.sky.entity.Employee" 表明这个 SQL 语句要接收一个 Employee 对象作为参数

修改员工信息

这里直接自己手敲,没遇到什么问题

导入菜品分类代码

导入代码之后,手按了一下compile,居然要重新配置数据库密码了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值