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 国际」许可协议进行许可。
分类:
mybatis
标签:
MybatisPlus
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)