SpringBoot项目 瑞吉外卖(5)员工分页查询、状态修改和信息编辑

文章介绍了如何在SpringBoot中使用MybatisPlus进行分页查询,配置拦截器实现分页功能,并展示了如何处理Long类型数据在JSON转换时的精度丢失问题,通过自定义信息转化器将Long转为String。此外,还提到了员工信息的编辑接口。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

分页查询:

使用Mybatis分页插件进行分页查询,需要配置拦截器

// MybatisPlusConfig.java
@Configuration
public class MybatisPlusConfig {

    @Bean
    public MybatisPlusInterceptor mybatisPlusInterceptor(){
        MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();
        interceptor.addInnerInterceptor(new PaginationInnerInterceptor());
        return interceptor;
    }

}

添加业务代码:

// EmployeeController.java
    @GetMapping("/page")
    public R<Page<Employee>> page(int page, int pageSize, String name){

        Page<Employee> pageInfo = new Page<>(page, pageSize);
        LambdaQueryWrapper<Employee> queryWrapper = new LambdaQueryWrapper<>();
        queryWrapper.like(StringUtils.isNotEmpty(name), Employee::getName, name);
        queryWrapper.orderByDesc(Employee::getUpdateTime);

        employeeService.page(pageInfo, queryWrapper);

        if (pageInfo.getTotal() != 0) return R.success(pageInfo);
        else return R.error("no field");
    }

禁用/启用员工账号:

这里如果只是单纯地updateById,那么会出现id匹配不上的问题

简而言之就是将传给浏览器的json数据中的long型数据转成string,需要使用信息转化器来实现

导入资源中的对象映射器

new SimpleModule().addSerializer(Long.class, ToStringSerializer.instance)

这一句表示添加一个long型转string型的序列化器

拓展信息转化器:

// WebMvcConfig.java
    @Override
    protected void extendMessageConverters(List<HttpMessageConverter<?>> converters) {
        // 信息转化器对象
        MappingJackson2HttpMessageConverter messageConverter = new MappingJackson2HttpMessageConverter();

        messageConverter.setObjectMapper(new JacksonObjectMapper());
        converters.add(0, messageConverter);
    }

编辑员工信息:

编辑请求路径为:http://localhost:8080/employee/{id}

// EmployeeController.java
    @GetMapping("/{id}")
    public R<Employee> revealInfo(@PathVariable long id){
        Employee emp = employeeService.getById(id);
        if (emp != null) return R.success(emp);
        else return R.error("query and reveal fail...");
    }
### 瑞吉外卖 Spring Boot 示例教程 #### 3.1 Redis集成配置 为了使瑞吉外卖项目能够利用Redis作为缓存机制,在项目的`pom.xml`文件中需引入相应的依赖: ```xml <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-redis</artifactId> </dependency> ``` 此操作确保了应用程序可以访问并操作Redis数据库,从而实现高效的键值存储功能[^1]。 #### 3.2 MyBatis Plus公共字段自动填充 针对分类管理模块中的实体对象,MyBatis Plus框架提供了便捷的方法来设置创建时间更新时间等通用属性。通过定义一个处理器类,并借助于`ThreadLocal`变量保存当前用户的登录信息,可以在每次新增或修改记录时自动注入这些时间戳数据[^2]。 #### 3.3 分类管理业务逻辑详解 ##### 3.3.1 新增分类 对于新添商品类别这一流程,前端页面提交表单后会触发后台接口调用。服务层负责验证参数合法性以及执行具体的入库动作;而控制层则主要承担接收请求参数并将响应结果返回给客户端的任务。此外,还需考虑如何处理可能发生的各种异常情况,比如重复名称检测失败等问题。 ##### 3.3.2 分页查询 当用户希望浏览已有的菜品分类列表时,系统应支持按条件筛选分页展示的功能。这涉及到前后端交互的设计——前端发送带有过滤器选项(如关键字匹配)及页码偏移量的AJAX请求至服务器;后者依据传入的信息构建SQL语句进行检索,并最终组装成JSON格式的数据集反馈回去显示在界面上。 ##### 3.3.3 删除与编辑分类 删除指定ID对应的条目前要先确认其是否存在关联子项以免造成孤儿记录现象;至于编辑,则是在保留原有结构的基础上允许更改部分内容而已。无论是哪种情形下都离不开细致严谨的服务端编程工作,包括但不限于事务管理权限校验等方面的内容。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值