解决pageHelper分页失效以及如何配置问题

目录
  • pageHelper分页失效及配置问题
    • 原因
    • 解决方案
  • PageHelper分页无效及报错
    • 第一种情况SQL报错
    • 第二种情况分页无效
  • 总结

pageHelper分页失效及配置问题

我在使用pageHelper的系统中加入mybatis-plus, 结果所有分页都失效了

原因

我这边的失效原因初步定为是因为mybatis-plus的自动配置和pageHelper的自动配置冲突了, 导致pageHelper的自动配置失效(最终是加上个配置类解决的)

解决方案

新建一个配置类

/**
 * @Author: WanG
 * @Date: 2019-05-13 18:42
 * @version: v1.0
 * @description: TODO
 */
@Configuration
public class MybatisConfig {
   @Bean
   public PageHelper pageHelper() {
      PageHelper pageHelper = new PageHelper();
      Properties p = new Properties();
      p.setProperty("offsetAsPageNum", "true");
      p.setProperty("rowBoundsWithCount", "true");
      p.setProperty("reasonable", "true");
      pageHelper.setProperties(p);
      return pageHelper;
   }
}

PageHelper分页无效及报错

第一种情况SQL报错

> Error querying database.  Cause: java.sql.SQLSyntaxErrorException: You
> have an error in your SQL syntax; check the manual that corresponds to
> your MySQL server version for the right syntax to use near 'LIMIT 5'
> at line 3

原因:在xml写的sql带了分号,由于PageHelper会在sql尾部追加limit,所以导致生成sql时有误,导致错误。

错误写法:

<select id="selectAll" resultMap="BaseResultMap">
        SELECT * FROM student;
</select>

正确写法:

 <select id="selectAll" resultMap="BaseResultMap">
        SELECT * FROM student
</select>

第二种情况分页无效

原因:可能是代码前后顺序有问题,应该先写分页,再执行sql。

错误写法:

List<Student> students = studentMapper.selectAll();
PageHelper.startPage(1, 5, true);

正确写法:

PageHelper.startPage(1, 5, true);
List<Student> students = studentMapper.selectAll();

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持我们。

(0)

相关推荐

  • Spring 中 PageHelper 不生效问题及解决方法

    使用这个插件时要注意版本的问题,不同的版本可能 PageHelper 不会生效 springboot 导入的 pagehelper 包 <dependency> <groupId>com.github.pagehelper</groupId> <artifactId>pagehelper-spring-boot-starter</artifactId> <version>1.4.6</version> </depen

  • PageHelper引发的幽灵数据问题解析

    目录 前言 大胆猜测 PageHelper工作原理 Tomcat请求流程 总结 前言 最近测试反馈一个问题,某个查询全量信息的接口,有时候返回全量数据,符合预期,但是偶尔又只返回1条数据,简直就是“见鬼”了,究竟是为什么出现这样的“幽灵数据”呢? 大胆猜测 首先我们看了下这对代码的业务逻辑,非常的简单,总共没有几行代码,也没有分页逻辑,代码如下: public List<SdSubscription> findAll() { return sdSubscriptionMapper.select

  • PageHelper在springboot+mybatis框架中的使用步骤及原理解析

    目录 一.思路 二.主要逻辑 三.步骤 一.思路 将分页所需的内容都放到一个实体类中 分页数据所需要的实体类!内包含页码,页大小,总条数,总页数,起始行 pagehelpr提供了这个类 pageInfo,不需要我们自己创建 二.主要逻辑 select * from 表名 limit 起始行,展示几条数据 #第n页 每页展示五条数据 select * from 表名 limit (n-1)*5,5 #每页展示多少条 pageSize 3 #总共有多少条 total select count(*)

  • pageHelper一对多分页解决方案示例

    目录 pageHelper 1.使用嵌套查询 2.使用自定义统计查询 pageHelper 是一个非常方便实用的 Java 分页插件,可以轻松实现数据库分页查询.而在一对多的情况下,如果要实现主表和从表的联合分页查询,可以采用以下两种解决方案: 1.使用嵌套查询 在 SQL 语句中使用嵌套查询,先在主表中查询出需要的数据信息,然后再根据这些信息去查询对应的从表数据.具体的 SQL 语法如下: SELECT m.*, (SELECT COUNT(1) FROM sub_tab s WHERE s.

  • 解决mybatis分页插件PageHelper导致自定义拦截器失效

    目录 问题背景 mybatis拦截器使用 使用方法: 注解参数介绍: setProperties方法 bug内容: 自定义拦截器部分代码 PageInterceptor源码: 解决方法: 解决方案一 调整执行顺序 解决方案二 修改拦截器注解定义 问题背景 在最近的项目开发中遇到一个需求 需要对mysql做一些慢查询.大结果集等异常指标进行收集监控,从运维角度并没有对mysql进行统一的指标搜集,所以需要通过代码层面对指标进行收集,我采用的方法是通过mybatis的Interceptor拦截器进行

  • thinkPHP使用post方式查询时分页失效的解决方法

    本文实例讲述了thinkPHP使用post方式查询时分页失效的解决方法.分享给大家供大家参考,具体如下: 昨天晚上一直没有解决的php项目中的bug,就在刚才终于搞定,在这里还需要感谢各位大神给的帮助! 具体问题描述 最近遇到一个非常棘手的问题,也是因为刚入手thinkphp.在做项目的过程中,因为需要非常多的查询条件,如果以get方式提交表单的话,会因为url长度限制而报错,所以必须使用post方式提交表单数据,但是在分页的过程中,遇到了问题,因为thinkphp自带的分页是以a标签的形式,进

  • 解决Mybatis的@Param()注解导致分页失效的问题

    @Param注解导致分页失效-分页拦截器 问题描述 在使用mybatis分页时,使用@Param注解传入了两个对象,分页失效,查询出的总是全部的数据. 出现问题时,分页策略为:分页拦截器实现的分页 [错误写法] service写法: public Page<Entity> getByNidAndEntity(Page<Entity> page,String nid,Entity entity){ entity.setPage(page); page.setList(dao.getB

  • SpringBoot整合Mybatis-Plus分页失效的解决

    场景:项目整合mybatis-Plus分页失效,current一直是1,size一直是10,total属性一直是0,数据分页不准 先看官网给的示例: 解决方案是新建mybatis-Plus的配置文件: package com.amc.config; import com.baomidou.mybatisplus.annotation.DbType; import com.baomidou.mybatisplus.autoconfigure.ConfigurationCustomizer; imp

  • 使用Mybatis的PageHelper分页工具的教程详解

    1.导入相关的jar包 在pom.xm中加入 <!-- https://mvnrepository.com/artifact/com.github.pagehelper/pagehelper --> <dependency> <groupId>com.github.pagehelper</groupId> <artifactId>pagehelper</artifactId> <version>5.1.10</ver

  • Java中PageHelper分页后对list操作导致分页无效

    1.问题 阿里巴巴Java开发手册 1.1.PageHelper先开启分页,后对list数据操作 @Override public PageInfo<HdQueryVo> getRecordsByView(int pageNo, int pageSize) { PageHelper.startPage(pageNo,pageSize); List<HdQueryVo> hdQueryVosByView = actionMapper.getActionByView(); List&l

  • SpringMvc+Mybatis+Pagehelper分页详解

    最近公司需要做一个告警页面的功能,需要分页,查了很多资料发现PageHelper比较合适 故写一篇从零开始的PageHelper使用的教程,也记录下忙活一天的东西 1.首先需要在项目中添加PageHelper的依赖,这里我用的Maven添加 <dependency> <groupId>com.github.pagehelper</groupId> <artifactId>pagehelper</artifactId> <version>

  • 使用微信内嵌H5网页解决JS倒计时失效问题

    项目要求:将H5商城页面嵌套到公司微信公众号里 项目本身的开发跟移动端网页并无太多差异,只是这昨天遇到一个问题,说是棘手,到也简单. 用户下单后,在选择支付方式页面,有个倒计时的逻辑(从下单时开始计算,24小时后未支付,会有ws自动取消这个订单),js代码如下: <script type="text/javascript"><br> var timespan = '20160113'; //后台程序生成24小时时间差值,这里随便写写 var timer; fun

  • Springboot整合pagehelper分页功能

    本文实例为大家分享了Springboot整合pagehelper分页展示的具体代码,供大家参考,具体内容如下 一.添加依赖 查找maven中pagehelper的版本 在pom中添加依赖 <dependency> <groupId>com.github.pagehelper</groupId> <artifactId>pagehelper-spring-boot-starter</artifactId> <version>1.2.2&

  • 解决laravel session失效的问题

    最新在学习laravel,用到了session,因为laravel没法用$_SESSION 所以只能用框架的session. 贴上代码 <?php namespace App\Http\Controllers; use App\Http\Requests; use Request; use Illuminate\Support\Facades\Session; class CommonController extends Controller { static function login(){

随机推荐