Mybatis-Plus分页插件功能实现

基于Spring Boot+Mybatis-Plus实现分页功能

添加依赖Mybatis-Plus

        <dependency>
            <groupId>com.baomidou</groupId>
            <artifactId>mybatis-plus-boot-starter</artifactId>
            <version>3.4.1</version>
        </dependency>

配置文件(需要扫描的映射路径)

mybatis-plus:
  mapper-locations: classpath:mapper/*.xml

 添加Mybatis-Plus配置文件,新建config包,新建MybatisPlusConfig类

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;
import org.springframework.transaction.annotation.EnableTransactionManagement;


@EnableTransactionManagement
@Configuration
public class MybatisPlusConfig {
    /**
     * 注册插件
     */
    @Bean
    public MybatisPlusInterceptor mybatisPlusInterceptor() {
        MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();

        // 添加分页插件
        PaginationInnerInterceptor pageInterceptor = new PaginationInnerInterceptor();
        // 设置请求的页面大于最大页后操作,true调回到首页,false继续请求。默认false
        pageInterceptor.setOverflow(false);
        // 单页分页条数限制,默认无限制
        pageInterceptor.setMaxLimit(500L);
        // 设置数据库类型
        pageInterceptor.setDbType(DbType.MYSQL);

        interceptor.addInnerInterceptor(pageInterceptor);
        return interceptor;
    }
}

实体类

@Data
public class PageObject {
    private Long pageNum; //页数
    private Long size; //几条
    private Long total; //总页数
    private List data; //数据
}

mapper层

    /**
     * 分页
     * @return
     */
    Page<PageObject> selectPage(Page<PageObject> page, Object query);

mapper.xml

    <!-- 基于mybatis plus分页 不用加 limit -->
    <select id="selectPage" resultMap="StandardResultMap">
        select 
        <include refid="StandardQueryFields"/> //这个是通过映射,你直接可以写 * 测试
        from
        node_info
    </select>

service业务层

    /**
     * 分页
     */
    PageObject inputList(PageObject pageObject);
    @Override
    public PageObject inputList(PageObject pageObject) {
        //进行分页
        //mybatis plus 分页组件
        Page<PageObject> page = new Page<>(pageObject.getPageNum(), pageObject.getSize());
        Page<PageObject> resultPage = nodeInfoMapper.selectPage(page,null);
        PageObject result = new PageObject();
        result.setPageNum(resultPage.getCurrent());
        result.setSize(resultPage.getSize());
        result.setTotal(resultPage.getTotal());
        result.setData(resultPage.getRecords());
        return result;
    }

controller控制层

    @GetMapping("/pageList")
    @ApiOperation("分页查询")
    public PageObject pageList(PageObject pageObject){
        log.info("开始执行查分页查询....");
        PageObject pageList = nodeInfoService.inputList(pageObject);
       return pageList;
    }

业务实现( Knife4j测试 )

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值