我在写黑马最新苍穹外卖启用禁用功能无效,因为我也是初学者,我跟着他的思路以及代码一步步来但就是不生效,对此我回看了好几遍确认自己无误后,我猜测可能id查询时出现精度丢失,我决定用自己的思路及方法来重写这一功能。
首先黑马是用mybatis在mapper中通过注解的方式来实现这一功能。我改写用mybatis-plus来完成这一功能。先在pom中导入坐标依赖。
<dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-boot-starter</artifactId> <version>3.4.2</version> </dependency>
2. 然后再mapper中继承baseMapper
@Mapper
public interface EmployeeMapper extends BaseMapper<Employee> {
}
3.控制层通过id来查询员工信息,这里注意数据库中id是long型,长度有18位,很可能出现精度丢失查询不到的情况,这里就要自己去将id改为string类型来查询或者自己手动去数据库修改id为简单数字。
控制层代码如下
@GetMapping("/{id}")
public Result<Employee> getById(@PathVariable Integer id) {
Employee employee = employeeService.getById(id);
return Result.success(employee);
}
4.业务层代码
public void startOrStop(Integer status, Long id) {
LambdaQueryWrapper<Employee> qw = new LambdaQueryWrapper<>();//查询条件构造器
//根据前端传过来的id获取员工数据
qw.eq(Employee::getId, id);
Employee employee = employeeMapper.selectOne(qw);
//修改用户状态
employee.setStatus(status);
//根据mybatis-plus提供的方法修改员工状态,注意这是BaseMapper提供的方法
employeeMapper.update(employee, qw);
}
5.最后效果如下
功能就成功实现啦。
本人也是初学者,将自己学习中遇到的问题分享出来,希望对大家有所帮助,其实最大的问题就是id查询会存在精度丢失,其实后面修改功能不出现回显也很有可能是这种问题,不知道大家会不会也出现这种问题。