mybatis plus 分页_Spring Boot专题7mybatisplus框架实现分页和枚举转换

本文介绍了在Spring Boot项目中使用MyBatis Plus实现分页查询的详细步骤,包括在启动类添加配置、在Service实现分页功能,以及测试验证。同时,文章还探讨了如何进行枚举转换,通过@EnumValue和@JsonValue注解实现数据库字段与响应值的映射,以处理性别字段为例,展示了数据库存储的'MALE'和'FEMALE'在查询时显示为'男'和'女'的效果。
摘要由CSDN通过智能技术生成

列表查询分页是很常用的一个功能,既然项目使用了mybatis-plus,那得聊聊mybatis-plus是如何实现分页和枚举转换的。mybatis-plus的框架简单使用可以查看第六节《spring boot开发web应用--mybatis-plus为简化而生》,这里不在赘述。

1.实现分页

(1).添加Bean配置

在项目启动类中添加@Bean配置

 package com.kinglead.demo;import com.baomidou.mybatisplus.extension.plugins.PaginationInterceptor;import com.baomidou.mybatisplus.extension.plugins.pagination.optimize.JsqlParserCountOptimize;import org.mybatis.spring.annotation.MapperScan;import org.springframework.boot.SpringApplication;import org.springframework.boot.autoconfigure.SpringBootApplication;import org.springframework.context.annotation.Bean;@SpringBootApplication@MapperScan("com.kinglead.demo.mapper")public class App {    public static void main(String[] args) {        SpringApplication.run(App.class, args);    }        /**     * mybatis-plus分页配置     */    @Bean    public PaginationInterceptor paginationInterceptor() {        PaginationInterceptor paginationInterceptor = new PaginationInterceptor();        // 设置请求的页面大于最大页后操作, true调回到首页,false 继续请求  默认false        // paginationInterceptor.setOverflow(false);        // 设置最大单页限制数量,默认 500 条,-1 不受限制        // paginationInterceptor.setLimit(500);        // 开启 count 的 join 优化,只针对部分 left join        paginationInterceptor.setCountSqlParser(new JsqlParserCountOptimize(true));        return paginationInterceptor;    }    }

(2).在ServiceImpl实现方法中加入分页实现Page

 package com.kinglead.demo.service.impl;import com.baomidou.mybatisplus.extension.plugins.pagination.Page;import com.kinglead.demo.domain.User;import com.kinglead.demo.mapper.UserMapper;import com.kinglead.demo.service.UserService;import org.springframework.stereotype.Service;import javax.annotation.Resource;import java.util.List;@Servicepublic class UserServiceImpl implements UserService {    @Resource    private UserMapper userMapper;    @Override    public List<User> queryUserList() {        //new分页模型:这里硬编码,第一页,每页5条        //current:当前页        //size:每页显示条数        Page<User> page = new Page<User>(1,5);        //使用mybatis-plus公共查询接口完成列表查询        Page<User> userPage = userMapper.selectPage(page, null);        return userPage.getRecords();    }}

(3).测试:第一页5条数据

数据库数据

d9f85095a555d9ce7a767f607c0653e4.png

查询列表

5eff696acb07f71a55dc38a55e182421.png

2.枚举转换

(1).创建枚举

主要用到2个注解@EnumValue和@JsonValue。@EnumValue注明写入数据库字段值;@JsonValue是Jackson方式带的注解,注明response返回值。

 package com.kinglead.demo.enums;import com.baomidou.mybatisplus.annotation.EnumValue;import com.fasterxml.jackson.annotation.JsonValue;public enum GenderEnum {    MALE("男","MALE"),    FEMALE("女","FEMALE");    private final String code;    //@EnumValue注明写入数据库字段值    @EnumValue    private final String value;    GenderEnum(String code, String value) {        this.code = code;        this.value = value;    }    //Jackson方式:@JsonValue注明response返回值    @JsonValue    public String getDescription() {        return this.code;    }}

(2).实体类User

 package com.kinglead.demo.domain;import com.baomidou.mybatisplus.annotation.TableName;import com.kinglead.demo.enums.GenderEnum;import lombok.Data;@Data@TableName(value = "t_user")  //指明数据库表名public class User {    private Long id;    private String name;    private Integer age;    private String email;    private GenderEnum gender;}

(3).测试:性别字段在数据库里存的是“MALE”和“FEMALE”,查询出来的是“男”和“女”

数据库数据

d9f85095a555d9ce7a767f607c0653e4.png

查询列表

5eff696acb07f71a55dc38a55e182421.png

源码github地址:https://github.com/kinglead2012/myblog

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值