Mybatis的PageHelper插件实现分页

  实现Mybatis的分页以下几种方式都可以实现。

  数据量不大或者数据提供者不支持分页,例如数据从设备上读取,就没有分页接口。可以读取所有的数据,放到List中,使用subList(start,end)方式来获取指定的数据。

  sql语句实现分页,例如MySQL的select a,b,c from test limit #{start}, #{pageSize}来获取指定分页的数据。

  使用sql语句实现分页,一般要写2个语句,一个获取数据的总量,一个用于获取指定分页的数据。

  或者可以使用PageHelper来实现分页。

  添加maven依赖:

<dependency>
    <groupId>com.github.pagehelper</groupId>
    <artifactId>pagehelper-spring-boot-starter</artifactId>
    <version>1.2.7</version>
</dependency>

  spring-boot项目的yml增加配置

#pagehelper分页插件配置
pagehelper:
    helper-dialect: mysql
    reasonable: true
    support-methods-arguments: true 
  reasonable:分页合理化参数,默认值为false。当该参数设置为 true 时,pageNum<=0 时会查询第一页, pageNum>pages(超过总数时),会查询最后一页。默认false 时,直接根据参数进行查询。

        

 

   

 

  mapper文件,不需要count(*)或者limit

<resultMap id="BaseResultMap" type="com.xxx.CfmMd" >
    <id column="id" property="id" jdbcType="INTEGER" />
    <result column="name" property="name" jdbcType="VARCHAR" />
    <result column="score" property="score" jdbcType="INTEGER" />
  </resultMap>

  <sql id="Base_Column_List" >
    id, name, score
  </sql>

 <select id="selectBySocre3" resultMap="BaseResultMap">
   select
   <include refid="Base_Column_List" />
   from test_integer_0 where id > 0
 </select>

   service代码

PageHelper.startPage(1,2);
List<CfmMd> userList= mapper.selectBySocre3();
PageInfo<CfmMd> pageInfo = new PageInfo<CfmMd>(userList);

   userList的数据如下

   pageInfo的数据如下

 

posted on 2021-05-19 23:07  lnlvinso  阅读(226)  评论(0编辑  收藏  举报