【Java从零到架构师第③季】【06】MyBatis-分页-PageHelper


持续学习&持续更新中…

守破离


【Java从零到架构师第③季】【06】MyBatis-分页-PageHelper

回顾MySQL的分页查询

  • MySQL:表中的数据,行是从0开始的,列是从1开始的

  • 假设每页15条数据

  • SELECT * FROM student LIMIT 0, 15; # 查询第一页

  • SELECT * FROM student LIMIT 15, 15; # 查询第二页

  • SELECT * FROM student LIMIT (n - 1) * pageSize, pageSize; # n代表第n页

  • 计算总页数

	假设:
		总数量:101条;每一页显示20条。
	公式:
        总页数 =(总数量 + 每页的数量 - 1) / 每页的数量
        总页数 =(101 + 20 - 1) / 20

不同数据库的分页查询

在这里插入图片描述

MyBatis分页插件 - PageHelper

在这里插入图片描述

https://github.com/pagehelper/Mybatis-PageHelper
https://github.com/pagehelper/Mybatis-PageHelper/blob/master/wikis/zh/HowToUse.md
https://apidoc.gitee.com/free/Mybatis_PageHelper/

在这里插入图片描述

    <dependency>
        <groupId>com.github.pagehelper</groupId>
        <artifactId>pagehelper</artifactId>
        <version>5.3.0</version>
    </dependency>
    <plugins>
        <plugin interceptor="com.github.pagehelper.PageInterceptor">
            <!-- true代表分页合理化:pageNum <= 0就会自动获取第1页,pageNum > pages就会自动获取最后1页 -->
            <property name="reasonable" value="true"/>
        </plugin>
    </plugins>

在这里插入图片描述

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="skill">
    <select id="list" resultType="Skill">
        SELECT id, created_time, name, level FROM skill
    </select>
</mapper>
    public static void main(String[] args) {
        try (SqlSession sqlSession = Mybaties.openSession()) {
//            PageHelper.startPage(1, 10); // 查询第1页,每页10条
            PageHelper.startPage(2, 10); // 查询第2页,每页10条
            List<Skill> lists = sqlSession.selectList("skill.list");
            for (Skill skill : lists) {
                System.out.println(skill);
            }
        }
    }

注意

  • https://mybatis.io/
  • 向大牛学习:Mybatis-PageHelper作者:https://blog.csdn.net/isea533

参考

小码哥-李明杰: Java从0到架构师③进阶互联网架构师.


本文完,感谢您的关注支持!


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值