mybatis常见分页技术和自定义分页原理实战(下)

简介: mybatis常见分页技术和自定义分页原理实战(下)

如果不分页就走自己的不分页的sql:

1dc618a0ed9580ce8bfa6facb208c08f.png

返回时包装成PageInfo统一对象为我们做了什么。

5d4c6812c8535adbb050f4ddf2e1bce8.png

返回后page只给我们赋值了记录数。所以需要我们手动把处理后的数据,放在返回pageInfo对象中:

46a9d80a6e05e4e3b19d57a0ee70bcdf.png

显示调用

66ba272a0bfc97be54a5fa679e3d5482.png

new pageInfo的逻辑其实就是:PageInfo因为继承了PageSerializable,所以含有total和list2个属性,给与其赋值。

1dc618a0ed9580ce8bfa6facb208c08f.png


这样pagehelper的分页就简单梳理完了。

再来聊聊另一个分页插件。


mybats-plus的分页插件


使用

mybats-plus的分页插件的使用先很简单

首先引入其分页插件:

5d4c6812c8535adbb050f4ddf2e1bce8.png

使用mybatis-plus分页插件

46a9d80a6e05e4e3b19d57a0ee70bcdf.png

在mapper中传入Ipage对象

66ba272a0bfc97be54a5fa679e3d5482.png


然后在sql中写我们的分页sql就可以了。

1dc618a0ed9580ce8bfa6facb208c08f.png


分析


个人觉得mybatis-plus分页很清晰,不是很绕。


这里显示在StatementHandler拼接sql的时候可以做些事情:

5d4c6812c8535adbb050f4ddf2e1bce8.png

对StatementHandler的prepare方法处进行拦截添加业务逻辑

46a9d80a6e05e4e3b19d57a0ee70bcdf.png


拦截方法: 判断是否需要分页

66ba272a0bfc97be54a5fa679e3d5482.png


分页操作:

1dc618a0ed9580ce8bfa6facb208c08f.png

查询记录数

5d4c6812c8535adbb050f4ddf2e1bce8.png

拼装分页语句获取集合

46a9d80a6e05e4e3b19d57a0ee70bcdf.png

拼接分页数据

66ba272a0bfc97be54a5fa679e3d5482.png


获取总记录数赋值给page对象


1dc618a0ed9580ce8bfa6facb208c08f.png

最后还是需要我们自己把集合对象赋值给Ipage对象


5d4c6812c8535adbb050f4ddf2e1bce8.png


以上就是mybatis的分页个人理解,并实现了简单的粗糙的自定义分页插件封装,对第三方的分页插件进行浅浅的分析。



相关文章
|
3天前
|
SQL
自定义SQL,可以利用MyBatisPlus的Wrapper来构建复杂的Where条件,如何自定义SQL呢?利用MyBatisPlus的Wrapper来构建Wh,在mapper方法参数中用Param注
自定义SQL,可以利用MyBatisPlus的Wrapper来构建复杂的Where条件,如何自定义SQL呢?利用MyBatisPlus的Wrapper来构建Wh,在mapper方法参数中用Param注
|
11天前
|
Java 关系型数据库 数据库连接
技术好文共享:第一讲mybatis入门知识
技术好文共享:第一讲mybatis入门知识
13 6
|
12天前
|
SQL Java 数据库连接
深入探索MyBatis Dynamic SQL:发展、原理与应用
深入探索MyBatis Dynamic SQL:发展、原理与应用
|
14天前
|
Java 数据库连接 API
后端开发之用Mybatis简化JDBC的开发快速入门2024及数据库连接池技术和lombok工具详解
后端开发之用Mybatis简化JDBC的开发快速入门2024及数据库连接池技术和lombok工具详解
23 3
|
14天前
MyBatis-Plus分页插件基于3.3.2
MyBatis-Plus分页插件基于3.3.2
14 0
MyBatis-Plus分页插件基于3.3.2
|
4天前
|
关系型数据库 MySQL 数据库
MybatisPlus添加数据数据库没有数据,数据消失,使用Navicate看不到数据,Navicate中Mysql的数据与idea的数据不一定同步,Navicate与idea的数据库同步,其实有分页
MybatisPlus添加数据数据库没有数据,数据消失,使用Navicate看不到数据,Navicate中Mysql的数据与idea的数据不一定同步,Navicate与idea的数据库同步,其实有分页
|
10天前
|
SQL 缓存 Java
Java框架之MyBatis 07-动态SQL-缓存机制-逆向工程-分页插件
Java框架之MyBatis 07-动态SQL-缓存机制-逆向工程-分页插件
|
11天前
|
Java 数据库连接 mybatis
MyBatisPlus分页功能制作未完
MyBatisPlus分页功能制作未完
|
12天前
|
Java 数据库连接 数据库
MyBatis TypeHandler详解:原理与自定义实践
MyBatis TypeHandler详解:原理与自定义实践
|
12天前
|
SQL Java 数据库连接
MyBatis插件深度解析:功能、原理、使用、应用场景与最佳实践
MyBatis插件深度解析:功能、原理、使用、应用场景与最佳实践