Mybatis-Plus 分页插件
Mybatis-Plus 分页插件
Mybatis-Plus分页插件的简单使用
配置分页插件对象
package com.yl.mybatis.plus.guigu.config;
import com.baomidou.mybatisplus.annotation.DbType;
import com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor;
import com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
/**
* mybatispuls配置类
*
* @author Y-wee
*/
@Configuration
public class MybatisPlusConfig {
/**
* 将MybatisPlusInterceptor交给容器管理
*
* @return
*/
@Bean
public MybatisPlusInterceptor mybatisPlusInterceptor() {
MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();
//设置数据库类型
interceptor.addInnerInterceptor(new PaginationInnerInterceptor(DbType.MYSQL));
return interceptor;
}
}
测试分页功能
@Test
public void testPage(){
// 创建分页对象并设置页码和页大小
Page<User> page = new Page<>(1,3);
// SELECT id,name,age,email FROM user LIMIT ?(当页码=1时可以省略)
mapper.selectPage(page, null);
// 获取分页数据(返回的Page == 入参的Page)
List<User> userList = page.getRecords();
userList.forEach(System.out::println);
}
自定义mapper方法使用分页插件
mapper
package com.yl.mybatis.plus.guigu.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yl.mybatis.plus.guigu.entity.User;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
/**
* 用户
*
* @author Y-wee
*/
@Mapper
public interface UserMapper extends BaseMapper<User> {
/**
* 分页
*
* @param page 分页对象,xml中可以从里面进行取值,传递参数 Page 即自动分页,必须放在第一位
* @param age
* @return
*/
Page<User> selectPageVo(@Param("page") Page<User> page, @Param("age") Integer age);
}
xml
<?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.yl.mybatis.plus.guigu.mapper.UserMapper">
<sql id="tableName">`user`</sql>
<!--分页-->
<select id="selectPageVo" resultType="User">
select * from <include refid="tableName"/> where age>#{age}
</select>
</mapper>
测试
@Test
public void testPage(){
Page<User> page = new Page<>(2,3);
// select * from `user` where age>? LIMIT ?,?
mapper.selectPageVo(page, 20);
List<User> userList = page.getRecords();
userList.forEach(System.out::println);
}
官方文档:https://baomidou.com/pages/97710a/#自定义的-mapper-method-使用分页
记得快乐
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!