1、分页插件
MyBatis 通过提供插件机制,让我们可以根据自己的需要去增强MyBatis 的功能。需要注意的是,如果没有完全理解MyBatis 的运行原理和插件的工作方式,最好不要使用插件,
因为它会改变系底层的工作逻辑,给系统带来很大的影响。
MyBatis 的插件可以在不修改原来的代码的情况下,通过拦截的方式,改变四大核心
对象的行为,比如处理参数,处理SQL,处理结果。
Mybatis插件典型适用场景
分页功能
mybatis的分页默认是基于内存分页的(查出所有,再截取),数据量大的情况下效率较低,不过使用mybatis插件可以改变该行为,只需要拦截
StatementHandler类的prepare方法,改变要执行的SQL语句为分页语句即
可;公共字段统一赋值
一般业务系统都会有创建者,创建时间,修改者,修改时间四个字段,对于这四个字段的赋值,实际上可以在DAO层统一拦截处理,可以用mybatis插件拦截
Executor类的update方法,对相关参数进行统一赋值即可;
性能监控
对于SQL语句执行的性能监控,可以通过拦截Executor类的update, query等方法,用日志记录每个方法执行的时间;
其它
其实mybatis扩展性还是很强的,基于插件机制,基本上可以控制SQL执行的各个阶段,如执行阶段,参数处理阶段,语法构建阶段,结果集处理阶段,具体可以根据项目业务来实现对应业务逻辑。
自定义分页插件
分页插件使用
注意:如果不是自定义插件的话,在注册插件时使用这一句代码就行了
分页插件的简单用法
2、MyBatis逆向工程
1.引入pom依赖
2.编写配置文件:
编写测试类
调用:
Mybatis3Simple生成调用
Mybatis3生成调用方式:
注意:MyBatis3 生成通用的查询,可以指定动态where条件
而MyBatis3Simple 只生成简单的CRUD
在实际开发中,我们更多使用的是MyBatis3Simple,只需要给我们生成简单的CRUD即可。