Mybatis插件

目录

一.Mybatis核心对象

二.SelSession四大对象

三.Mybatis 插件原理

3.1 mybatis插件接口

3.2 插件初始化

3.3 动态代理四大对象

3.3 运行拦截器链

四.Mybatis插件案例

五.总结


一.Mybatis核心对象

Configuration:存放所有配置信息的类,包括properties配置、plugin插件、Mapper映射、数据源等。

SqlSessionFactory:简而言之就是创建SqlSession的工厂类,通常由SqlSessionFactoryBuilder根据Configuration配置类生成。

SqlSession:SqlSession是一个接口,定义了增、删、改、查、事务回滚提交等接口。SqlSession中的sql操作是通过Executor、StatementHandler、ParameterHandler和ResultHandler来完成数据库的操作和数据返回的。

Executor代表执行器,调度StatementHandler、ParameterHandler和ResultHandler等来执行SQL。

StatementHandler的角色和JDBC中的PreparedStatement是类似的,通过调用PreparedStatement完成操作,是SQLSession中核心的对象承上启下。

ParameterHandler比较好理解,用来处理参数映射、转换。

ResultHandler是专门处理数据结果集的,把一行行的数据库记录映射成Java对象。

二.SelSession四大对象

mybatis中的插件可以简单的理解成在四大对象调用前后织入自定义代码,如需要修改SQL通常拦截StatementHandler对象,相比于其他三大对象,StatementHandler通常是最常拦截的一个对象。

 

三.Mybatis 插件原理

mybatis插件技术使用了动态代理责任链模式,动态代理实现在四大对象调用前后执行自定义代码,责任链模式把多个拦截器合成一条调用链,解耦请求调用者和处理者集合,便于扩展自定义插件。

3.1 mybatis插件接口

mybatis定义了插件接口Interceptor,Interceptor接口有三个方法intercept、plugin、setProperties。

intercept方法是核心方法,自定义逻辑通常定义在这个方法内。

plugin方法是用于生成代理对于,jdk8以上版本可以不适用Interceptor接口自带的静态方法。

setProperties方法在插件初始化时设置xml配置文件中定义的属性。

除此之外还需要在类中声明插件

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值