Mybatis Plus 分页查询数据

Mybatis Plus 分页查询数据#

一、分页配置#

package com.example.demomybatispage.config;

import com.baomidou.mybatisplus.annotation.DbType;
import com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor;
import com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;


@MapperScan("com.example.demomybatispage.mapper")
@Configuration
public class MyBatisPlusConfig {
 

    /**
     * 添加分页插件
     */
    @Bean
    public MybatisPlusInterceptor mybatisPlusInterceptor() {
        MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();
        interceptor.addInnerInterceptor(new PaginationInnerInterceptor(DbType.MYSQL));//如果配置多个插件,切记分页最后添加
        //interceptor.addInnerInterceptor(new PaginationInnerInterceptor()); 如果有多数据源可以不配具体类型 否则都建议配上具体的DbType
        return interceptor;
    }
 

}

二、使用分页功能#

package com.example.demomybatispage;

import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.example.demomybatispage.mapper.EnumDemoMapper;
import com.example.demomybatispage.pojo.EnumTest;
import com.example.demomybatispage.service.EnumDemoService;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;

import java.util.List;

@SpringBootTest
class DemoMybatisPageApplicationTests {


    @Autowired
    EnumDemoMapper enumDemoMapper;

    @Autowired
    EnumDemoService enumDemoService;

    /**
     * 测试mapper
     */
    @Test
    void contextLoads() {


        QueryWrapper<EnumTest> queryWrapper = new QueryWrapper<>();
        queryWrapper.lambda().ge(EnumTest::getNum,1);

        Page<EnumTest> page = new Page<>(1, 5);
        //List<EnumTest> enumTests = enumDemoMapper.selectList(null);

        enumDemoMapper.selectPage(page, queryWrapper);

        System.out.println("总记录数:" + page.getTotal());
        System.out.println("总共多少页:" + page.getPages());
        System.out.println("当前页码:" + page.getCurrent());
        // 当前页数据
        List<EnumTest> users = page.getRecords();
        System.out.println(users);
    }

    /**
     * 测试service
     */

    @Test
    void demoServicePage() {

        QueryWrapper<EnumTest> queryWrapper = new QueryWrapper<>();
        queryWrapper.lambda().ge(EnumTest::getNum,1);
        Page<EnumTest> page = new Page<>(1, 5);
        enumDemoService.page(page,queryWrapper);

        System.out.println("总记录数:" + page.getTotal());
        System.out.println("总共多少页:" + page.getPages());
        System.out.println("当前页码:" + page.getCurrent());
        // 当前页数据
        List<EnumTest> users = page.getRecords();
        System.out.println(users.size());
    }


    /**
     * 测试自定义
     */
    @Test
    void demoCustomizationPage() {

        QueryWrapper<EnumTest> queryWrapper = new QueryWrapper<>();
        queryWrapper.lambda().ge(EnumTest::getNum,1);
        Page<EnumTest> page = new Page<>(1, 20);
        enumDemoMapper.testPage(page);

        System.out.println("总记录数:" + page.getTotal());
        System.out.println("总共多少页:" + page.getPages());
        System.out.println("当前页码:" + page.getCurrent());
        System.out.println("每页的数量:" + page.getSize());
        // 当前页数据
        List<EnumTest> users = page.getRecords();
        System.out.println(users.size());
    }


}

mapper#

package com.example.demomybatispage.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.example.demomybatispage.pojo.EnumTest;
import org.apache.ibatis.annotations.Mapper;

@Mapper
public interface EnumDemoMapper extends BaseMapper<EnumTest> {

    /**
     * 测试分页插件
     *
     * @param page
     * @return
     */
    Page<EnumTest> testPage(Page<EnumTest> page);


}

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="com.example.demomybatispage.mapper.EnumDemoMapper">

    <select id="testPage" resultType="com.example.demomybatispage.pojo.EnumTest">
        select * from enum_test
    </select>

</mapper>

作者:Esofar

出处:https://www.cnblogs.com/firsthelloworld/p/17711513.html

版权:本作品采用「署名-非商业性使用-相同方式共享 4.0 国际」许可协议进行许可。

posted @   我不想学编丿程  阅读(286)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)
more_horiz
keyboard_arrow_up light_mode palette
选择主题
menu
点击右上角即可分享
微信分享提示