一:插件的使用
以分页插件PageHelper为例,看一下mybatis的插件如何工作
首先添加pageHelper的maven依赖:
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper</artifactId>
<version>5.1.2</version>
</dependency>
在mybatis-config.xml中配置插件plugins:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration
PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
<!-- 引入外部资源文件
resource:默认引入classpath路径下的资源文件
url:引入物理路径下的资源文件(如:d:\\jdbc.properties)
-->
<properties resource="application.properties"></properties>
<!-- 设置参数 -->
<settings>
<!-- 开启驼峰匹配:完成经典的数据库命名到java属性的映射
相当于去掉数据中的名字的下划线,和java进行匹配
-->
<setting name="mapUnderscoreToCamelCase" value="true"/>
</settings>
<!-- 配置别名 -->
<typeAliases>
<!-- typeAlias:用来配置别名,方便映射文件使用,type:类的全限定类名,alias:别名 -->
<typeAlias type="com.example.mybatis.model.User" alias="User"/>
</typeAliases>
<plugins>
<plugin interceptor="com.github.pagehelper.PageInterceptor"/>
<!--<plugin interceptor="com.example.mybatis.plugin.MyFirstPlugin">
<property name="someProperty" value="100"/>
</plugin>-->
</plugins>
<!-- 配置环境:可以配置多个环境,default:配置某一个环境的唯一标识,表示默认使用哪个环境 -->
<environments default="development">
<!-- 配置环境,id:环境的唯一标识 -->
<environment id="development">
<!-- 事务管理器,type:使用jdbc的事务管理器 -->
<transactionManager type="JDBC" />
<!-- 数据源,type:池类型的数据源 -->
<dataSource type="POOLED">
<!-- 配置连接信息 -->
<property name="driver" value="${jdbc.driverClass}" />
<property name="url" value="${jdbc.url}" />
<property name="username" value="${jdbc.username}" />
<property name="password" value="${jdbc.password}" />
</dataSource>
</environment>
</environments>
<!-- 配置映射文件:用来配置sql语句和结果集类型等 -->
<mappers>
<mapper resource="UserMapper.xml" />
</mappers>
</configuration>
在使用的上一行语句中写上PageHelper.startPage(pageNo,pageSize) 页码,每页页数
PageHelper.startPage(3,2);
List<User> list = userMapper.selectUser("hello105");
这样就可以工作了,下面我们测试一下

通过日志可以看到,可以实现正常的分页工作了,下面我们来研究一下它的工作原理
二:插件工作原理
1:插件的注册,我们在第一节分析XMLConfigBuilder解析mybatis-config.xml的时候看过解析mappers,这里重点
看一下如何解析plugins元素

看一下解析plugins元素下面的plugin元素,

最后注册到configuration中的interceptorChain中


到这里,解析mybatis-config.xml时注册插件的过程就完成了。
2:对数据库操作做增强
原文:https://www.cnblogs.com/warrior4236/p/13104984.html