springBoot 使用 mybatis-plus 实现分页


原文链接:https://blog.csdn.net/sinat_34338162/article/details/83543994

一、项目结构

二、pom.xml 依赖添加   (这里我是加在krystal_dao的pom.xml里面,单个项目,直接加在pom.xml,多模块根据自己项目情况添加)

  1.   <dependency>
  2.   <groupId>com.baomidougroupId>
  3.   <artifactId>mybatis-plusartifactId>
  4.   <version>3.0-betaversion>
  5.   dependency>

三、新建MyBatisPlusConfig.java (这里我用专门一个模块添加一些功能代码,里面依赖自己根据爆错的添加进去即可)

  1.   package com.dm.krystal.core.config;
  2.   import com.baomidou.mybatisplus.extension.plugins.PaginationInterceptor;
  3.   import org.mybatis.spring.annotation.MapperScan;
  4.   import org.springframework.context.annotation.Bean;
  5.   import org.springframework.context.annotation.Configuration;
  6.    
  7.   /**
  8.   * @author krystal
  9.   * @date 2018/10/30
  10.   */
  11.   @Configuration
  12.   /*@MapperScan("com.dm.krystal")*/ /* KrystalApiApplication在启动文件上写了,这里不加*/
  13.   public class MyBatisPlusConfig {
  14.   /**
  15.   * mybatis-plus分页插件
  16.   */
  17.   @Bean
  18.   public PaginationInterceptor paginationInterceptor() {
  19.   PaginationInterceptor paginationInterceptor = new PaginationInterceptor();
  20.   return paginationInterceptor;
  21.   }
  22.   }

四、具体代码实现

1.controller  

  1.   @GetMapping("/findAllUser")
  2.   @ResponseBody
  3.   public List<User> findAllUser(){
  4.   User user = new User();
  5.   int page=2;//当前页
  6.   int pageSize=4;//页面接收数据大小
  7.   IPage<User> iPage = userService.selectPageExt(user, page, pageSize);
  8.   iPage.getRecords();
  9.   return iPage.getRecords();
  10.   }
  11.   }

2.service

3.serviceImp

  1.   public IPage<User> selectPageExt(User user, int page, int pageSize) throws RuntimeException {
  2.   try {
  3.   Page<User> p = new Page<>(page, pageSize);
  4.   p.setRecords(userDao.selectPageExt(p, user));
  5.   return p;
  6.   } catch (Exception e) {
  7.   throw new RuntimeException(e.getMessage());
  8.   }
  9.   }

4.dao

List<User> selectPageExt(Page<User> page, @Param("user") User user);

5. .xml

  1.   <select id="selectPageExt" resultType="com.dm.krystal.entity.User">
  2.   select
  3.   <include refid="userColumns"/>
  4.   from sys_user
  5.   select>

五、sql 打印

 select * from sys_user LIMIT 4,4 

结果