使用SpringBoot创建工程,在配置好通用Mapper和PageHelper后,发现使用PageHelper.startPage()后,查询结果一直是表中的所有数据,PageHelper.startPage()失效。

SpringBoot项目中必须使用该包pagehelper-spring-boot-starter

pom.xml

<!-- 通用mapper -->
<dependency><groupId>tk.mybatis</groupId><artifactId>mapper-spring-boot-starter</artifactId><version>2.0.2</version>
</dependency>
<!-- PageHelper分页插件 -->
<dependency><groupId>com.github.pagehelper</groupId><artifactId>pagehelper-spring-boot-starter</artifactId><version>1.3.0</version>
</dependency>

在配置dialect: mysql,一直报错。通过网上资料发现使用全类名可以解决该问题。但是在使用PageHelper.startPage()方法时,分页并不会生效。

application.yml中配置通用mapper和PageHelper

#通用mapper配置
mapper:identity: MYSQL#PageHelper插件配置 该配置对PageHelper不起作用。使用config包中的PageHelperConfig方式可以起作用。
pagehelper:#原来的配置 dialect: mysql              #解决途径:通过debug源码,发现配置文件读取到的是“mysql”,而源码中需要的是一个类的全类名来反射,所以推断这个属性值不是mysql,而是一个全类名。dialect: com.github.pagehelper.dialect.helper.MySqlDialectreasonable: truesupport-methods-arguments: trueparams: count=countSql

查询资料发现也有使用以下配置PageHelper的,使用此配置即可正确的处理分页。原因未知,依然是满脸疑惑,但是功夫不负有心人还是将问题解决了。有知道的博友可以留言哦,谢谢。如果要配置该文件,需要将application.yml的PageHelper插件配置删除掉,否则PageHelper.startPage()仍然会失效,将会查询出所有数据。

import com.github.pagehelper.PageHelper;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;import java.util.Properties;@Configuration
public class PageHelperConfig {@Beanpublic PageHelper pageHelper(){PageHelper pageHelper=new PageHelper();Properties properties=new Properties();//把这个设置为true,会带RowBounds第一个参数offset当成PageNum使用properties.setProperty("offsetAsPageNum","true");//设置为true时,使用RowBounds分页会进行count查询properties.setProperty("rowBoundsWithCount","true");properties.setProperty("reasonable","true");pageHelper.setProperties(properties);return pageHelper;}
}

以下是项目中主要代码。

User实体类

@Repository
@Table(name = "user")
//mybatis通用接口mapper依赖JPA实体类采用JPA,配置表名
public class User implements Serializable {//配置主键@Idprivate String username;private String password;//省略getter和setter方法

Maper层:

UserMaper

import com.zueb.domain.User;
import tk.mybatis.mapper.common.BaseMapper;
import tk.mybatis.spring.annotation.MapperScan;@MapperScan("com.example.mapper")
public interface UserMapper extends BaseMapper<User> {}

业务层:

IUserService

/*** 处理用户逻辑的业务层接口*/
public interface IUserService {/*** 获取用户列表* @return List<User>*/PageInfo<User> findAll(int pageNum, int pageSize);
}

UserServiceImpl

@Service
public class UserServiceImpl implements IUserService {@Autowiredprivate UserMapper userMapper;@Overridepublic PageInfo<User> findAll(int pageNum, int pageSize) {//参数pageNum是页码 参数pageSize 代表每页显示条数PageHelper.startPage(pageNum,pageSize);//调用userMapper获取所有用户List<User> users = userMapper.selectAll();PageInfo<User> pageInfo = new PageInfo<>(users);return pageInfo;}
}

控制层:

UserController

@RestController
@RequestMapping("/users")
public class UserController extends BaseController{@Autowiredprivate IUserService userService;/*** 处理获取用户列表请求* @return JsonResult对象 返回为json数据*/@RequestMapping("/userList")public JsonResult<List<User>> logout(HttpSession session) {PageInfo<User> pageInfo = userService.findAll(1,5);List<User> data = pageInfo.getList();return new JsonResult<>(OK,data);}
}

SpringBoot整合通用Mapper和PageHelper,使用PageHelper.startPage()失效的问题相关推荐

  1. SpringBoot整合通用mapper实现泛型BaseController增删改

    SpringBoot整合通用mapper实现泛型BaseController增删改 前言:目前写项目做需求时增删改查一直用得比较频繁,但是在做开发的时候,却并不想一次一次写重复的代码,尝试着整合了一下 ...

  2. 一看就会一学就废之SpringBoot整合通用Mapper以及常用方法

    本文适合初次学习通用Mapper新鸟阅览,老生常谈,从三个大方向入手----是什么?能干什么?怎么用? 目录 一.通用Mapper是什么? 二.通用Mapper能干什么? 三.怎么使用通用Mapper ...

  3. springboot整合通用mapper操作数据库

    1. 建表sql create table user (`id` int PRIMARY KEY auto_increment COMMENT '用户id', `name` VARCHAR(255) ...

  4. SpringBoot整合通用Mapper

    添加依赖 添加通用Mapper的依赖,注意还需要搭配MyBatis和对应数据库的驱动: <dependency><groupId>org.mybatis.spring.boot ...

  5. 【解析】spring-boot整合通用mapper

    问题描述: Caused by: java.sql.SQLSyntaxErrorException: You have an error in your SQL syntax; check the m ...

  6. Springboot整合通用mapper进阶1

    1.自定义sql方法的使用,mapper的依赖配置文件就不一一赘述了,详情: https://blog.csdn.net/brantykl/article/details/129360320?spm= ...

  7. Springboot集成mybatis通用Mapper与分页插件PageHelper

    Springboot集成mybatis通用Mapper与分页插件PageHelper 插件介绍 通用 Mapper 是一个可以实现任意 MyBatis 通用方法的框架,项目提供了常规的增删改查操作以及 ...

  8. 通用返回_Springboot项目整合通用mapper

    1.简介 什么是通用mapper 什么是通用mapper,用一句话概括就是,它就是一个辅助mybatis开发的组件,它不是替代mybatis,而是使mybatis更方便的开发.通用mapper提供极其 ...

  9. 02_Spring Cloud Alibaba整合通用Mapper+Lombok+Mysql

    Spring CLoud 整合通用Mapper+Lombok+Mysql 文章目录 一.使用Spring Initializr快速创建Spring Boot应用 二.相关依赖 2.1. 添加依赖 2. ...

  10. SpringBoot+JdbcTemplate通用Mapper的实现

    文章目录 SpringBoot+JdbcTemplate通用Mapper的实现 通用Mapper 针对User的jdbcMapper 针对 User的Service 相应的Controller Spr ...

最新文章

  1. _tmain和main
  2. python newbie——PE No.5
  3. 【android-tips】如何在android应用中插入百度广告(附源码)
  4. 转:从零开始开发一款Android App (from 简书)
  5. java12章_从零开始学Java 第12章 异常处理
  6. WAF指纹识别和XSS过滤器绕过技巧
  7. java流与文件——正则表达式
  8. 手动打开和关闭windows的相关服务
  9. android 动态壁纸
  10. java商品信息管理系统代码_[源码分享]学生信息管理系统(管理员)
  11. 供应商否认iPhone 12延迟推出传闻 称生产按计划进行
  12. 定时任务 Wpf.Quartz.Demo.3
  13. 最新HoloLens在windows10上的开发配置(1)
  14. vant修改用户头像
  15. 西北工业大学电工学mooc第六章测试题及解析
  16. 加权最小二乘法matlab,加权最小二乘法matlab
  17. 给文件及文件夹设置密码
  18. linux安装识别不到scsi硬盘,Linux下不重起识别SCSI硬盘
  19. 【JDK源码】集合源码目录,冲冲冲
  20. JavaScript 的物理引擎对比

热门文章

  1. Ubuntu19.04 创建桌面快捷方式
  2. Yate软交换机IPPBX与电话语音网关的初步配合
  3. win10下u盘检测的到,但是盘符不显示
  4. 2020 字节跳动,网易,华为(1),阿里P7级别面试经验总结
  5. 图新地球为什么很模糊,白球、看图、下载问题深度剖析
  6. 单片机STM32开发环境的安装
  7. 遗传算法求解函数最大值的python实现
  8. jQuery动画入门--顺序执行
  9. j1900适合装哪版群晖_适合新人观看的威联通NAS设置流程详解攻略
  10. On the Efficacy of Knowledge Distillation