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查询结果分页的资料请关注代码网其它相关文章!
发表评论