当前位置: 代码网 > it编程>编程语言>Java > MyBatis-Plus实现对查询结果进行分页的基本步骤

MyBatis-Plus实现对查询结果进行分页的基本步骤

2024年08月28日 Java 我要评论
mybatis-plus 是一个 mybatis 的增强工具,在 mybatis 的基础上只做增强不做改变,为简化开发、提高效率而生。mybatis-plus 支持多种数据库的分页查询,其分页功能是通

mybatis-plus 是一个 mybatis 的增强工具,在 mybatis 的基础上只做增强不做改变,为简化开发、提高效率而生。mybatis-plus 支持多种数据库的分页查询,其分页功能是通过 page 类实现的。

以下是使用 mybatis-plus 实现分页查询的基本步骤:

  • 添加依赖:首先确保你的项目中已经添加了 mybatis-plus 的依赖。

  • 配置 mapper 接口:创建一个 mapper 接口,该接口继承自 basemapper<t>,其中 t 是你的实体类。

  • 创建 service:在 service 层中,你可以注入 mapper 接口,并调用其分页查询的方法。

  • 使用 page 类:创建一个 page 对象,设置当前页码和每页显示的记录数。

  • 调用分页查询:在 mapper 接口中定义一个分页查询的方法,使用 @select 注解或者 xml 映射文件来指定查询语句。然后在 service 层调用这个方法,传入 page 对象。

  • 处理结果:分页查询的结果会返回一个 pageinfo<t> 对象,其中包含了当前页的数据和分页信息。

好的,用一个案例来具体看一下,如何使用 mybatis-plus 进行分页查询。假设我们有一个需求是,在用户管理系统,需要对用户列表进行分页显示。

  • 实体类(user.java)
public class user {
    private long id;
    private string name;
    private integer age;
    private string email;
    // 省略其他字段和getter/setter方法
}
  • mapper 接口(usermapper.java)
import com.baomidou.mybatisplus.core.mapper.basemapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.page;

public interface usermapper extends basemapper<user> {
    // 这里可以添加自定义的查询方法,例如按状态查询
    page<user> selectbystate(page<user> page, @param("state") integer state);
}
  • mapper xml 文件(usermapper.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.example.mapper.usermapper">
    <!-- 按状态查询用户的分页结果 -->
    <select id="selectbystate" resulttype="com.example.entity.user">
        select * from user where state = #{state}
    </select>
</mapper>
  • service 接口(iuserservice.java)
import com.baomidou.mybatisplus.extension.service.iservice;
import com.baomidou.mybatisplus.core.metadata.ipage;
import com.example.entity.user;

public interface iuserservice extends iservice<user> {
    ipage<user> getuserlistbystate(integer state, int current, int size);
}
  • service 实现(userserviceimpl.java)
import com.baomidou.mybatisplus.extension.service.impl.serviceimpl;
import com.example.mapper.usermapper;
import com.example.entity.user;
import com.baomidou.mybatisplus.core.metadata.ipage;
import org.springframework.stereotype.service;

@service
public class userserviceimpl extends serviceimpl<usermapper, user> implements iuserservice {

    @override
    public ipage<user> getuserlistbystate(integer state, int current, int size) {
        ipage<user> page = this.page(new com.baomidou.mybatisplus.extension.plugins.pagination.page<>(current, size), null);
        if (state != null) {
            return this.basemapper.selectbystate(page, state);
        }
        return page;
    }
}
  • controller(usercontroller.java)
import com.example.service.iuserservice;
import com.baomidou.mybatisplus.core.metadata.ipage;
import com.example.entity.user;
import org.springframework.beans.factory.annotation.autowired;
import org.springframework.web.bind.annotation.getmapping;
import org.springframework.web.bind.annotation.requestparam;
import org.springframework.web.bind.annotation.restcontroller;

@restcontroller
public class usercontroller {

    @autowired
    private iuserservice userservice;

    @getmapping("/users")
    public ipage<user> getusers(@requestparam(defaultvalue = "0") integer state,
                                 @requestparam(defaultvalue = "1") int current,
                                 @requestparam(defaultvalue = "10") int size) {
        return userservice.getuserlistbystate(state, current, size);
    }
}
  • 启动类(application.java)
import org.springframework.boot.springapplication;
import org.springframework.boot.autoconfigure.springbootapplication;

@springbootapplication
public class application {
    public static void main(string[] args) {
        springapplication.run(application.class, args);
    }
}
  • application.properties
# 配置数据库连接信息
spring.datasource.url=jdbc:mysql://localhost:3306/userdb?usessl=false&servertimezone=utc
spring.datasource.username=weige
spring.datasource.password=wg123456
spring.datasource.driver-class-name=com.mysql.cj.jdbc.driver

# 配置 mybatis-plus
mybatis-plus.mapper-locations=classpath:/mapper/*.xml
mybatis-plus.type-aliases-package=com.vin.entity

以上就是mybatis-plus实现对查询结果进行分页的基本步骤的详细内容,更多关于mybatis-plus查询结果分页的资料请关注代码网其它相关文章!

(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2025  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com