Springboot2集成Mybatis-Plus分页插件

本文介绍了如何在Springboot 2.1.1.RELEASE环境中集成Mybatis-Plus 2.2.0进行分页操作。通过配置类MybatisPlusConfig进行集成,并展示了在通用CRUD和自定义SQL场景下的使用方法,以及分页查询的返回示例。
摘要由CSDN通过智能技术生成

环境

  • Springboot:2.1.1.RELEASE
  • Mybatis-plus:2.2.0
  • 依赖
<dependency>
            <groupId>com.baomidou</groupId>
            <artifactId>mybatis-plus-boot-starter</artifactId>
            <version>${mybatisplus.version}</version>
        </dependency>
  • application.yml内关于plus的配置(参考,不一定需要)
mybatis-plus:
  mapper-locations: classpath:/mapper/*Mapper.xml
  typeAliasesPackage: com.lvjian.jiyu.entity
  global-config:
    id-type: 2
    db-column-underline: true
    refresh-mapper: true
  configuration:
    map-underscore-to-camel-case: true
    cache-enabled: true

集成

编写配置类

MybatisPlusConfig.java

package com.xxx.xxx.config;

import com.baomidou.mybatisplus.plugins.PaginationInterceptor;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.transaction.annotation.EnableTransactionManagement;

@EnableTransactionManagement
@Configuration
@MapperScan("com.xxx.xxx.mapper")
public class MybatisPlusConfig {

    /**
     * 分页插件
     */
    @Bean
    public PaginationInterceptor paginationInterceptor() {
        return new PaginationInterceptor();
    }
}

在通用CRUD方法中使用

适用于不自己写sql语句,直接使用mybatis自带的方法,一般在service层使用

// pageNum是页码,pageSize是该页码内包含的记录数
Page pageBean = new Page<Tenant>(pageNum, pageSize);
List<User> users = userMapper.selectPage(pageBean);
pageBean.setRecords(users);

在自己编写sql的场景里使用

有些时候业务比较复杂,需要在mapper的xml文件里自己编写xml文件。

  1. 需要编写xml的mapper方法为
List<User> getUserListByName(@Param("page") Pagination page, @Param("name") String name);

注意Pagination必须有,且最好在第一个参数

  1. service层调用mapper
// pageNum是页码,pageSize是该页码内包含的记录数
Page pageBean = new Page<Tenant>(pageNum, pageSize);
List<User> users = userMapper.getUserListByName(pageBean,"spz");
pageBean.setRecords(users);

返回举例(JSON)

total 为总记录数,pages是总页数,current是当前页码

{
        "total": 2,
        "size": 1,
        "pages": 2,
        "current": 1,
        "records": [
            {
                "modifiedTime": 1546421510000,
                "rentFlag": 0,
                "createTime": 1545358162000,
                "sex": 1,
                "idCardBackPath": "",
                "name": "张三"
            }
        ]
    }

个人公众号,定期分享各种技术干货,欢迎扫码关注! 

公众号二维码

 

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值