Mybatis 中理解分页如何使用 Interceptor 接口实现

简介: Mybatis 中理解分页如何使用 Interceptor 接口实现

在这里插入图片描述

通过 Mybatis 执行分页 SQL 有两种实现方式, 一种是编写 SQL 时添加 LIMIT, 一种是全局处理

01、SQL 分页

<select id="getSubjectByPage" resultMap="resultAutoMap">
    SELECT * FROM SUBJECT LIMIT #{CURRINDEX} , #{PAGESIZE}
</select>

02、拦截器分页

上文说到, Mybatis 支持了插件扩展机制, 可以拦截到具体对象的方法以及对应入参级别

我们添加插件时需要实现 Interceptor 接口, 然后将插件写在 mybatis-config.xml 配置文件中或者添加相关注解, Mybatis 初始化时解析才能在项目启动时添加到插件容器中

pluginElement

由一个 List 结构存储项目中全部拦截器, 通过 Configuration#addInterceptor 方法添加

InterceptorChain

重点需要关注 Interceptor#pluginAll 中 plugin 方法, Interceptor 只是一个接口, plugin 方法只能由其实现类完成

ExamplePlugin

Plugin 可以理解为是一个工具类, Plugin#wrap 返回的是一个动态代理类

wrap

这里使用一个测试的 Demo 看一下方法运行时的参数

AlwaysMapPlugin

虽然是随便写的 Demo, 但是与正式使用的插件并无实际区别

插件运行状态

相关文章
|
2月前
Mybatis+mysql动态分页查询数据案例——分页工具类(Page.java)
Mybatis+mysql动态分页查询数据案例——分页工具类(Page.java)
28 1
|
5月前
|
SQL Java 数据库连接
mybatis常见分页技术和自定义分页原理实战
mybatis常见分页技术和自定义分页原理实战
|
14天前
|
SQL 前端开发 Java
通过使用Mybatis插件来实现数据的分页功能
通过使用Mybatis插件来实现数据的分页功能
|
2月前
|
SQL Java 数据库连接
Mybatis是如何实现分页功能的
Mybatis是如何实现分页功能的
12 0
|
3月前
|
XML 监控 druid
【Java专题_02】springboot+mybatis+pagehelper分页插件+druid数据源详细教程
【Java专题_02】springboot+mybatis+pagehelper分页插件+druid数据源详细教程
|
3月前
|
SQL Java 数据库连接
MyBatis 的 3 种分页方式
MyBatis 的 3 种分页方式
132 1
MyBatis 的 3 种分页方式
|
3月前
|
SQL Java 关系型数据库
|
4月前
|
SQL Oracle 关系型数据库
mybatis-3.分页
mybatis-3.分页
|
4月前
|
Java 数据库连接 mybatis
Mybatis之分页插件
【1月更文挑战第5天】 一、分页插件使用步骤 1、添加依赖 2、配置分页插件 二、分页插件的使用 1、开启分页功能 2、分页相关数据 方法一:直接输出 方法二使用PageInfo 常用数据:
51 1
|
4月前
|
Java 数据库连接 Maven
MyBatis分页插件
MyBatis分页插件