分页查询-mybatis-plus版本

一.配置文件

​ yml格式,mysql8.0以上

mybatis:
	configuration:
    	#开启驼峰命名
    	map-underscore-to-camel-case: true
spring:
	datasource:
    	druid:
      		driver-class-name:  com.mysql.cj.jdbc.Driver
             url: jdbc:mysql://地址:端口/数据库名?serverTimezone=Asia/Shanghai&useUnicode=true&characterEncoding=utf-8&zeroDateTimeBehavior=convertToNull&useSSL=false&allowPublicKeyRetrieval=true
             username: 用户名
             password: 密码

pom.xml

		<!-- MySQL 驱动 -->
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <scope>runtime</scope>
        </dependency>

        <!-- mybatis plus的依赖 -->
        <dependency>
            <groupId>com.baomidou</groupId>
            <artifactId>mybatis-plus-boot-starter</artifactId>
        </dependency>

二.工具包准备

​ 属性名与表中字段名一致(记得检查驼峰命名法)
​ Serializable接口:序列化,要指定serialVersionUID

可以参考表名定义:https://blog.csdn.net/qq_40241957/article/details/101772536

@Data
@TableName("表名")//指定表名
public class CourseBase implements Serializable {
    
    private static final long serialVersionUID = 1L;

    /**
     * 主键
     */
    @TableId(value = "id", type = IdType.AUTO) //指定主键id
    private Long id;

    /**
     * 名称
     */
    private String name;
   
     /**
     * 创建时间
     */
    @TableField(fill = FieldFill.INSERT)//创建时自动注入时间
    private LocalDateTime createDate;

    /**
     * 修改时间
     */
    @TableField(fill = FieldFill.INSERT_UPDATE)//创建和修改时自动注入
    private LocalDateTime changeDate;
}

返回值工具包(与前端约定好)

@Data
@ToString
public class PageResult<T> implements Serializable {

    // 数据列表
    @ApiModelProperty("数据列表")
    private List<T> items;

    //总记录数
    @ApiModelProperty("总记录数")
    private long counts;

    //当前页码
    @ApiModelProperty("当前页码")
    private long page;

    //每页记录数
    @ApiModelProperty("每页记录数")
    private long pageSize;

    public PageResult(List<T> items, long counts, long page, long pageSize) {
        this.items = items;
        this.counts = counts;
        this.page = page;
        this.pageSize = pageSize;
    }



}

三.mapper层和分页拦截器

​ mapper接口继承BaseMapper

public interface Mapper extends BaseMapper<工具包> {
    
}
@Configuration
@MapperScan("mapper层地址")
public class MybatisPlusConfig {
    /**
     * 定义分页拦截器
     */
    @Bean
    public MybatisPlusInterceptor mybatisPlusInterceptor() {
        MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();
        interceptor.addInnerInterceptor(new PaginationInnerInterceptor(DbType.MYSQL));
        return interceptor;
    }
}

四.业务实现

public void testCourseBaseMapper() {
    //这个类可以添加匹配条件,参数一:判断类中值存在,参数二:何种方式取值,参数三:值
    //queryWrapper.like(StringUtils.isNotEmpty(Dto.getName()),Dto::getName.Dto.getName())
	LambdaQueryWrapper<工具包> queryWrapper = new LambdaQueryWrapper<>();
     //参数一:页码,参数二:每页记录数,推荐弄个工具类   
    Page<工具包> page = new Page<>(1L,3L); 
    //分页查询E page 分页参数, @Param("ew") Wrapper<T> queryWrapper 查询条件
    Page<工具包> pageResult = courseBaseMapper.selectPage(page, queryWrapper);
    //数据
    List<工具包> items = pageResult.getRecords();
    //总记录数
    long total = pageResult.getTotal();
    //准备返回数据 List<T> items, long counts, long page, long pageSize。与前端预定好
    PageResult<CourseBase> courseBasePageResult = new PageResult<>(items, total, pageParams.getPageNo(), pageParams.getPageSize());
    
}
  • 5
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值