一:插件的使用
以分页插件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