利用mybatis +进行分页查询时出现总与页面的值为零如何解决

  介绍

这期内容当中小编将会给大家带来有关利用mybatis +进行分页查询时出现总与页面的值为零如何解决,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。

<强>一。问题还原

1。控制器代码部分

PagepageForPlus=getPage ();

PagefixedAssetsEntityPage=fixedAssetsService.selectPage (pageForPlus);

2. spring-mybatis。xml中的sqlSessionFactory配置

, & lt; bean  id=皊qlSessionFactory"   类,,=癱om.baomidou.mybatisplus.spring.MybatisSqlSessionFactoryBean"比;   & lt; !——,才能配置数据源,——比;   & lt;才能property  name=癲ataSource", ref=癲ataSource",/比;   & lt; !——,才能自动扫描,Xml 文件位置,——比;   & lt;才能property  name=癿apperLocations",价值=https://www.yisu.com/zixun/" classpath *:映射/* */* . xml "/>      <属性name=value=癱onfigLocation类路径:mybatis-config。xml "/>      <属性name=value=皌ypeAliasesPackage com.syb.dto com.syb.sys。实体"/>       - ->         <属性名=" globalConfig“ref=" globalConfig "/>   

打断点查看fixedAssetsEntityPage,记录条目正确,但总数是和页面都是0

利用mybatis +进行分页查询时出现总与页面的值为零如何解决

<强>二。解决

查阅官方文档发现,缺少了分页插件的配置,在sqlSessionFactory中添加分页插件,添加后为

& lt; bean  id=皊qlSessionFactory"   类,,=癱om.baomidou.mybatisplus.spring.MybatisSqlSessionFactoryBean"比;   & lt; !——,才能配置数据源,——比;   & lt;才能property  name=癲ataSource", ref=癲ataSource",/比;   & lt; !——,才能自动扫描,Xml 文件位置,——比;   & lt;才能property  name=癿apperLocations",价值=https://www.yisu.com/zixun/" classpath *:映射/* */* . xml "/>      <属性name=value=癱onfigLocation类路径:mybatis-config。xml "/>      <属性name=value=皌ypeAliasesPackage com.syb.dto com.syb.sys。实体"/>       - ->         <属性名="插件">   <数组>         <属性名=" dialectType " value=" mysql "/>      

运行程序,打断点查看,总和页面已经正常显示

<强>补充知识: <强> mybatisPlus分页查询多次查到相同数据的问题

<强>一、问题描述

使用mybatisPlus 3.1.0,在同一个方法内,多次调用同一个方法进行分页查询,每次查询的分页页码递增,结果每次查到的数据都一样。

<强>二、相关知识:mybatis一级缓存

mybatis存在缓存机制,查询到的数据会纳入缓存,同一sqlSession共享的叫一级缓存。默认情况下,mybatis会使用一级缓存

会取一级缓存的条件:

1,同一个sqlSession

2,同一个映射器方法

3,参数没有发生变化

<强>三,问题原因

mybatis判断是否需要使用一级缓存的代码,早于mybatisPlus分页插件拦截的代码执行(分页代码早一点执行,才有机会将分页参数也作为是否取缓存的依据)

附图:

利用mybatis +进行分页查询时出现总与页面的值为零如何解决

利用mybatis +进行分页查询时出现总与页面的值为零如何解决

<强>四,解决办法

在刀。xml对应的选择标签里,增加属性flushCache=皌rue"

利用mybatis +进行分页查询时出现总与页面的值为零如何解决