当前位置: 首页 > 网络应用技术

Mybatis Plus如何实现动态SQL语句?您了解该原则吗?

时间:2023-03-05 19:25:52 网络应用技术

  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