mybatis-plus(称为MP)是Mybatis增强的工具,那么它如何增强?实际上,它已经包装了一些CRUD方法。开发不再需要编写XML。只需直接调用这些方法,类似于JPA。
然后,本文读取以下MP的具体实现,以了解如何实现这些增强。
通过在入口方法中注入Mybatis Plus(称为MP),将动态配置XML文件注入Mybatis。
它涉及2 MP2功能类
在这里,我们专注于分析Mybatisconfiguration类。在Mybatisconfiguration中,MP初始化其自己的mybatismapperRegistry,而mybatismapperrigation是MP加载自定义SQL方法的注册表。
Mybatisconfiguration中的许多方法是重写使用mybatismapperization的现实
其中,三种退休方法添加了MPAPPER实现注册MP动态脚本的功能。
在MyBatismApperrization中,MP将MyBatis的MapperAnnotationBuilder替换为MP自己的MyBatismAppersNotationBuilder
在MyBatismApperrization类的AddMapper方法中,MP的核心类MyBatismAppersNotationBuilder的核心类别,mybatismAppernotationBuilder是MP实现动态脚本的关键类。
在核心类mybatismapperAmperantationBuilder的解析器方法中,将一次加载的MP类,加载方法包括以下几个
在MyBatismAppernNotationBuilder中,MP确实注册了由框架自定义的动态SQL语句中的Mybatis Engine.AbsTractMethod满足特定方法的SQL语句结构。
以SelectyByid课为例
此时,MP在启动时完成了加载自定义方法XML配置的过程。后者是Mybatis的动态替代和预填充,它已进入Mybatis自己的功能。
MP重写并替换了十多种Mybatis,主要如下图所示:
总体而言,MP实现Mybatis增强功能,其手段有些乏味,并且不直观。实际上,根据MyBatismApperAngantationBuilder,构造自定义方法的XML文件将其转换为Mybatis的资源资源。它只能继承一个mybatis类:sqlsessionfactonananianinininino,rruthe
在本文中,简要介绍了实施MP的动态语句的过程,并提供了更方便的方法。
资料来源:juejin.cn/post/6883081187103866894