SpringBoot+Mybatis-Plus两种分页方法

用到的依赖:

<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>${mybatisplus.version}</version>
<exclusions>
<exclusion>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-generator</artifactId>
</exclusion>
</exclusions>
</dependency>

 

首先配置mybatis-plus配置

package com.qfclo.login.config;

import com.baomidou.mybatisplus.extension.plugins.PaginationInterceptor;

import com.baomidou.mybatisplus.extension.plugins.PerformanceInterceptor;

import org.mybatis.spring.annotation.MapperScan;

import org.springframework.context.annotation.Bean;

import org.springframework.context.annotation.Configuration;

import java.util.Properties;

@Configuration

@MapperScan("com.qfclo.login.mapper")

public class MybatisPlusConfig {

/**

* 分页插件

*/

    @Bean

    public PaginationInterceptorpaginationInterceptor() {

return new PaginationInterceptor();

    }

/**

* 打印 sql

*/

    @Bean

    public PerformanceInterceptorperformanceInterceptor() {

PerformanceInterceptor performanceInterceptor =new PerformanceInterceptor();

        //格式化sql语句

        Properties properties =new Properties();

        properties.setProperty("format", "faalse");

        performanceInterceptor.setProperties(properties);

        return performanceInterceptor;

    }

}

第一种方式,mybatis-plus原生QueryWrapper方式分页,这种方式比较简单,可以不用修改Mapper,适合简单的增删改查。

    @RequestMapping(value = "/orgist1")//,method = RequestMethod.POST)
    public Map<String,Object> orglist1()
    {

        Map<String,Object> map = new HashMap<>();

        QueryWrapper<OauthOrganization> queryWrapper =  new QueryWrapper<>();
        queryWrapper.orderByDesc("id");

        Page<OauthOrganization> page = new Page<>(1,5);  // 查询第1页,每页返回5条
        IPage<OauthOrganization> iPage = oauthOrganizationMapper.selectPage(page,queryWrapper);
        System.out.println(iPage.getRecords().size());
        System.out.println(JSON.toJSONString(iPage));
        return map;
    }

第二种方式,使用mapper文件的select注解,优点是可以方便的建立查询语句,可以联合多表查询。
Mapper文件

    @Select("SELECT * FROM oauth_organization WHERE id < #{m.id} ORDER BY `id` DESC")
    List<OauthOrganization> selectpage(Map<String,Object> m, Page<OauthOrganization> page);

Controller文件

    @RequestMapping(value = "/orgist4")//,method = RequestMethod.POST)
    public Map<String,Object> orglist4()
    {

        Map<String,Object> map = new HashMap<>();
        Map<String,Object> m = new HashMap<>();
        m.put("id",5);
        Page<OauthOrganization> page = new Page<>(1,5);
        page.setRecords(oauthOrganizationMapper.selectpage(m,page));
        System.out.println(page.getRecords().size());
        System.out.println(JSON.toJSONString(page));
        return map;
    }



作者:小鱼儿2020
链接:https://www.jianshu.com/p/0a21569f1e06
来源:简书

posted @ 2019-08-05 16:33  推土机27  阅读(28289)  评论(0编辑  收藏  举报