pagehelper

【错误日志】springframework.core.CollectionFactory.createConcurrentMapIfPossible(I)Ljava/util/Map和PageHelper失效

若如初见. 提交于 2020-04-04 00:03:03
  Spring的相关jar包缺失,在服务方的service模块没有引入SpringMVC导致;   在使用PageHelper时发现分页失效 @Override public PageInfo<GoodsDetail> queryInfo( Integer pageNum, Integer pageSize, Integer sortId) { List<GoodsDetail> list = goodsDetailMapper.queryInfo(sortId); PageHelper.startPage(pageNum, pageSize); PageInfo<GoodsDetail> pageInfo = new PageInfo<>(list); return pageInfo; }   错误原因:分页必须在查询结果后面 @Override public PageInfo<GoodsDetail> queryInfo( Integer pageNum, Integer pageSize, Integer sortId) { PageHelper.startPage(pageNum, pageSize); List<GoodsDetail> list = goodsDetailMapper.queryInfo(sortId); PageInfo<GoodsDetail>

Mybatis框架插件PageHelper的使用

萝らか妹 提交于 2020-03-31 02:44:58
在web开发过程中涉及到表格时,例如dataTable,就会产生分页的需求,通常我们将分页方式分为两种:前端分页和后端分页。 前端分页 一次性请求数据表格中的所有记录(ajax),然后在前端缓存并且计算count和分页逻辑,一般前端组件(例如dataTable)会提供分页动作。 特点是:简单,很适合小规模的web平台;当数据量大的时候会产生性能问题,在查询和网络传输的时间会很长。 后端分页 在ajax请求中指定页码(pageNum)和每页的大小(pageSize),后端查询出当页的数据返回,前端只负责渲染。 特点是:复杂一些;性能瓶颈在MySQL的查询性能,这个当然可以调优解决。一般来说,web开发使用的是这种方式。 我们说的也是后端分页。 MySQL对分页的支持 简单来说MySQL对分页的支持是通过limit子句。请看下面的例子。 1 limit关键字的用法是 2 LIMIT [offset,] rows 3 offset是相对于首行的偏移量(首行是0),rows是返回条数。 4 5 # 每页10条记录,取第一页,返回的是前10条记录 6 select * from tableA limit 0,10; 7 # 每页10条记录,取第二页,返回的是第11条记录,到第20条记录, 8 select * from tableA limit 10,10; 这里提一嘴的是

SpringBoot 集成分页插件pageHelper导致分页参数失效

假装没事ソ 提交于 2020-03-24 13:26:40
1、Bug复现   postman测试时,传入当前页pageNum,每页显示条数:pageSize,两个参数之后,不管pageSize传入任何之后,接口返回值中的pageSize都是固定不变的,与传入值不一致。 2、问题分析 出现问题,先看配置 2.1 pom文件检查 <!-- pageHelper分页插件 --> <dependency> <groupId>com.github.pagehelper</groupId> <artifactId>pagehelper-spring-boot-starter</artifactId> <version>1.2.12</version> </dependency> 看完之后,发现并没有什么问题。 2.2 application.yml配置检查 # pageHelper分页配置 pagehelper: helper-dialect: mysql reasonable: false support-methods-arguments: true params: count=countSql 看了一下配置,网上有博主说,是reasonable参数配置的问题。 问题就在reasonable这个参数配置上,reasonable可以理解为是否开启自动优化默认为false,如果为true当查询的页码无数据时就会返回离输入的页码最近含数据的页码数据

PageHelper 的快速使用

自闭症网瘾萝莉.ら 提交于 2020-03-23 23:41:03
3 月,跳不动了?>>> 导入依赖 <!-- https://mvnrepository.com/artifact/com.github.pagehelper/pagehelper --> <dependency> <groupId>com.github.pagehelper</groupId> <artifactId>pagehelper</artifactId> <version>5.1.11</version> </dependency> 使用方式 PageHelper.startPage(page,pageSize); List<Order> list = orderMapper.queryAll(); 划重点 page 是指当前页码,pageSize是指每页显示条数 PageHelper.startPage(page,pageSize) 会对他下面的第一个select SQL 进行分页 使用PageHelper 前的SQL :select * from order limit 1,5; 分页PageHelper 后的SQL:select * from order; 来源: oschina 链接: https://my.oschina.net/u/3690153/blog/3209526

篇二:BaseService、BaseDao整理

一世执手 提交于 2020-03-21 01:17:04
公共Service层、Dao层整理    篇一介绍了Spring与Mybatis的整合,整合成功后的下一步动作就是整理公共操作Mybatis的方法。整合过程中关于jar包版本需要注意,特别是mybatis-spring.jar的版本,1.2之前的版本与之后的版本在SqlSessionDaoSupport.class有所改动,远吗会说明使用   BaseDao: package com.core.dao; import java.util.List; import com.core.dao.common.BaseResponse; import com.core.dao.common.PageData; /** * Dao层公共包 * @author Liugp * */ public interface BaseDao<T> { /** * 查询单条数据 * @param id * @return */ T selectById(String id); /** * 查询多条数据,不分页 * @param obj * @return */ List<T> selectList(Object obj); /** * 自定义列表查询,不分页 * @param statement * @param obj * @return */ List<T> selectList(String

springboot集成pagehelper实现分页

我们两清 提交于 2020-03-19 17:31:57
3 月,跳不动了?>>> 1.首先加入pagehelper的pom依赖 <!--pagehelper --> <dependency> <groupId>com.github.pagehelper</groupId> <artifactId>pagehelper-spring-boot-starter</artifactId> <version>1.2.5</version> </dependency> 2.准备实体类User.java public class User { private int id; private String username; private String password; 省略getter setter 方法 } 3.controller层代码 [@Controller](https://my.oschina.net/u/1774615) public class UserController { @Autowired UserMapper userMapper; //第一种实现方式 //http://localhost:8080/getUser?pageNum=1&pageSize=2 @RequestMapping(value = {"/getUser","/"}) public String getUser(Integer pageNum,

mybatis分页插件

若如初见. 提交于 2020-03-15 19:06:59
如果你也在用 Mybatis ,建议尝试该分页插件,这个一定是 最方便 使用的分页插件。 该插件目前支持 Oracle,Mysql,MariaDB,SQLite,Hsqldb,PostgreSQL 六种数据库分页。 点击提交 BUG 1. 版本说明 1.1. 最新版本为 3.4.2 PageInfo 中的 judgePageBoudary 方法修改: isLastPage = pageNum == pages && pageNum != 1; // 改为 isLastPage = pageNum == pages; 1.2. 版本 3.4.1 重大 bug 修复, SqlParser 解析 sql 失败的时候返回了不带 count(*) 的 sql ,导致查询失败。 产生原因,由于 SqlParser 在系统中出现的位置修改后,导致这里出现错误。 强烈推荐各位更新到最新版本。 增加了对 @SelectProvider 注解方法的支持,不使用这种方式的不影响 对基本逻辑进行修改,减少反射调用和获取 BoundSql 次数 对支持的数据库全部通过完整测试 虽然变化大,但是影响范围小,不特殊通知各位了。 1.3. 版本 3.4.0 2. 使用方法 分页插件项目中的正式代码一共有个 5 个 Java 文件,这 5 个文件的说明如下: Page<E>[ 必须 ] :分页参数类,该类继承

ssm框架整合入门系列——查询-返回分页的json数据

时光总嘲笑我的痴心妄想 提交于 2020-03-14 15:31:20
查询-返回分页的json数据 ajax查询过程 index.jsp页面直接发送ajax请求进行员工分页数据的查询 服务器将查出的数据,以json字符串的形式返回给浏览器 浏览器收到js字符串。可以使用js对json进行解析,使用js通过dom增删改改变页面。 返回json。实现客户端的无关性。 添加json支持 在 pom.xml 中添加: <!-- 返回json字符串的支持 --> <!-- https://mvnrepository.com/artifact/com.fasterxml.jackson.core/jackson-databind --> <dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-databind</artifactId> <version>2.8.8</version> </dependency> 修改EmployeeMapper.java 主要是添加了 getEmpsWithJson 方法 package com.liantao.crud.controller; import java.util.List; import org.springframework.beans.factory.annotation.Autowired; import

pageHelper分页插件使用

早过忘川 提交于 2020-03-09 21:54:31
PageHelper是一款开源免费的Mybatis第三方物理分页插件,个人觉得也是最方便使用的分页插件,相信大家没使用过,也听说过。在介绍使用方法前我们来看看PageHelper的一些方法作用: 再来介绍使用方法。 首先我们得添加PageHelper的依赖 <dependency> <groupId>com.github.pagehelper</groupId> <artifactId>pagehelper</artifactId> <version>4.1.0</version> </dependency> 然后需要在mybatis-config.xml中配置PageHelper <plugin interceptor="com.github.pagehelper.PageHelper"> <property name="dialect" value="mysql"/> </plugin> 这样配置就完成了,是不是很简单,就可以在代码使用了,服务层模板如下: //pageNum展示哪一页,pageSize每一页展示的条数 public PageInfo<DemoDO> getALLDemoInfo(int pageNum,int pageSize) { //使用时,先执行PageHelper.startPage(pageNum,pageSize) PageHelper

spring boot 2.x版本:java.lang.ClassNotFoundException: org.springframework.boot.bind.RelaxedDataBinder

百般思念 提交于 2020-03-09 20:27:06
标题 ##搭建spring boot 2.0.3版本 使用alibaba的druid数据库连接池,com.github.pagehelper的分页插件,启动项目报错。 错误提示:java.lang.ClassNotFoundException: org.springframework.boot.bind.RelaxedDataBinder boot.bind下找不到RelaxedDataBinder这个方法 查看API发现,这个org.springframework.boot.bind 包已经删掉了,导致RelaxedPropertyResolver这个方法已经不可用了 解决方案一:使用jdbc连接      <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-jdbc</artifactId> </dependency> 附application.yml配置,建议使用yml格式配置,properties格式的配置文件有时无效果 server: port: 8080 spring: datasource: name: test url: jdbc:mysql://127.0.0.1:3306/mytest username: root password: