一、依赖引入
需要的依赖参考:springboot使用mybatis-plus依赖实现数据库操作的实战教学
如果你使用的是spring boot4的话需要额外增加一个依赖
<dependency>
<groupid>com.baomidou</groupid>
<artifactid>mybatis-plus-jsqlparser</artifactid>
<version>3.5.17</version>
</dependency>二、配置分页拦截器
package com.example.demo.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;
@configuration
public class mybatisplusconfig {
@bean
public mybatisplusinterceptor mybatisplusinterceptor() {
mybatisplusinterceptor interceptor = new mybatisplusinterceptor();
interceptor.addinnerinterceptor(new paginationinnerinterceptor(dbtype.mysql));
return interceptor;
}
}三、分页实现流程
1. 创建分页对象
import com.baomidou.mybatisplus.extension.plugins.pagination.page; // 分页对象 pagenum页码,pagesize每页条数 page<user> page = new page<>(1, 10);
2. 增加条件构造器(可选)
import com.baomidou.mybatisplus.core.conditions.query.querywrapper;
//条件构造器
querywrapper<user> wrapper = new querywrapper<>();
//查询条件
wrapper.eq("name", "张三"); // name = '张三'
wrapper.like("phone", "138"); // phone like '%138%'
wrapper.ge("age", 18); // age >= 18
wrapper.le("age", 60); // age <= 60
wrapper.eq("status", 1); // status=1如果想要使用实体属性代替筛选条件,可以使用lambdaquerywrapper来实现
import com.baomidou.mybatisplus.core.conditions.query.lambdaquerywrapper;
//条件构造器
lambdaquerywrapper<user> wrapper = new lambdaquerywrapper<>();
wrapper.eq(user::getname, "张三")
.like(user::getphone,"138")
.ge(user::getage,18);3. 执行分页查询
import com.baomidou.mybatisplus.core.metadata.ipage; //执行分页查询 ipage<user> result = usermapper.selectpage(page, null); //带条件的分页查询 ipage<user> result = usermapper.selectpage(page, wrapper);
4. 获取数据
//获取数据列表 list<user> list = result.getrecords(); //获取总条数 long total = result.gettotal();
四、分页实现示例
package com.example.demo.controller;
import com.baomidou.mybatisplus.core.conditions.query.lambdaquerywrapper;
import com.baomidou.mybatisplus.core.metadata.ipage;
import com.baomidou.mybatisplus.extension.plugins.pagination.page;
import com.example.demo.mapper.usermapper;
import com.example.demo.model.user;
import jakarta.annotation.resource;
import org.springframework.web.bind.annotation.*;
import java.util.*;
@restcontroller
@requestmapping("/user")
public class usercontroller {
//注入mapper
@resource
private usermapper usermapper;
@postmapping("/page")
public map<string, object> page(
@requestparam(required = false, defaultvalue = "1") long pagenum,
@requestparam(required = false, defaultvalue = "10") long pagesize,
@requestparam(required = false) string username
) {
// 分页对象
page<user> page = new page<>(pagenum, pagesize);
//条件构造器
lambdaquerywrapper<user> querywrapper = new lambdaquerywrapper<>();
if (username != null) {
querywrapper.like(user::getusername, username);
}
querywrapper.orderbyasc(user::getid);
//执行分页查询
ipage<user> result = usermapper.selectpage(page, querywrapper);
//获取数据列表
list<user> list = result.getrecords();
//获取总条数
long total = result.gettotal();
map<string, object> data = new hashmap<>();
data.put("list", list);
data.put("total", total);
return data;
}
}效果如下

到此这篇关于springboot集成mybatis-plus实现数据库分页功能的文章就介绍到这了,更多相关springboot数据库分页内容请搜索代码网以前的文章或继续浏览下面的相关文章希望大家以后多多支持代码网!
发表评论