PageHelper升级为MyBatis Plugin,有何优势与特点?
- 内容介绍
- 文章标签
- 相关推荐
本文共计3384个文字,预计阅读时间需要14分钟。
在众多业务场景下,我们需截取SQL,避免侵入原有代码业务处理,如:历史记录、分页操作、数据权限过滤操作、SQL执行时间监控等。
在很多业务场景下我们需要去拦截SQL,达到不入侵原有代码业务处理一些东西,比如:历史记录、分页操作、数据权限过滤操作、SQL执行时间性能监控等等,这里我们就可以用到MyBatis的插件Plugin。下面我们来了解一下Plugin到底是如何工作的。
一、背景
使用过MyBatis框架的朋友们肯定都听说过PageHelper这个分页神器吧,其实PageHelper的底层实现就是依靠plugin。下面我们来看一下PageHelper是如何利用plugin实现分页的。
二、MyBatis 执行概要图
首先我们先看一下MyBatis的执行流程图,对其执行流程有一个大体的认识。
三、MyBatis 核心对象介绍
从MyBatis代码实现的角度来看,MyBatis的主要的核心部件有以下几个:
- Configuration:初始化基础配置,比如MyBatis的别名等,一些重要的类型对象,如,插件,映射器,ObjectFactory和typeHandler对象,MyBatis所有的配置信息都维持在Configuration对象之中。
- SqlSessionFactory:SqlSession工厂,用于生产SqlSession。
本文共计3384个文字,预计阅读时间需要14分钟。
在众多业务场景下,我们需截取SQL,避免侵入原有代码业务处理,如:历史记录、分页操作、数据权限过滤操作、SQL执行时间监控等。
在很多业务场景下我们需要去拦截SQL,达到不入侵原有代码业务处理一些东西,比如:历史记录、分页操作、数据权限过滤操作、SQL执行时间性能监控等等,这里我们就可以用到MyBatis的插件Plugin。下面我们来了解一下Plugin到底是如何工作的。
一、背景
使用过MyBatis框架的朋友们肯定都听说过PageHelper这个分页神器吧,其实PageHelper的底层实现就是依靠plugin。下面我们来看一下PageHelper是如何利用plugin实现分页的。
二、MyBatis 执行概要图
首先我们先看一下MyBatis的执行流程图,对其执行流程有一个大体的认识。
三、MyBatis 核心对象介绍
从MyBatis代码实现的角度来看,MyBatis的主要的核心部件有以下几个:
- Configuration:初始化基础配置,比如MyBatis的别名等,一些重要的类型对象,如,插件,映射器,ObjectFactory和typeHandler对象,MyBatis所有的配置信息都维持在Configuration对象之中。
- SqlSessionFactory:SqlSession工厂,用于生产SqlSession。

