前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >mybatisPlus条件构造器体系解读

mybatisPlus条件构造器体系解读

作者头像
一个风轻云淡
发布2023-10-15 11:14:01
1690
发布2023-10-15 11:14:01
举报
文章被收录于专栏:java学习javajava学习java
为什么需要条件构造器?

  想要使用MybatisPlus完成条件查询,基于面向对象的思想,万物皆对象,那么查询条件也需要使用对象来完成封装。我们先看一下,在MybatisPlus中,和条件有关的类有哪些,他们之间有什么关系,理清楚了这个,我们在传递条件对象的时候,就很清晰了。

基本介绍

查询mybatisPlus源码可以看到,条件构造器wrapper继承情况:

Wrapper:条件构造器,最顶端的一个类 AbstractWrapper:用于sql语句条件的封装,主要是封装where条件 QueryWrapper:查询条件封装 UpdateWrapper:更新条件封装 AbstractLambdaWrapper:具有Lambda语法的条件封装 LambdaQueryWrapper:具有Lambda语法查询条件封装 LambdaUpdateWrapper:具有Lambda语法更新条件封装

Wrapper: 条件构造抽象类,最顶端父类

        AbstractWrapper:用于查询条件封装,生成sql的where条件

                QueryWrapper:查询条件封装                 UpdateWrapper:Update条件封装                 AbstractLambdaWrapper:使用Lambda语法 LambdaQueryWrapper:用于Lambda语法使用的查询Wrapper

                                LambdaUpdateWrapper:用于Lambda更新封装Wrapper

Wrapper

抽象类,条件类的顶层,提供了一些获取和判断相关的方法

代码语言:javascript
复制
public abstract class Wrapper<T> implements ISqlSegment
 AbstractWrapper

抽象类,Wrapper的子类,提供了所有的条件相关方法

代码语言:javascript
复制
public abstract class AbstractWrapper<T, R, Children 
    extends AbstractWrapper<T, R, Children>> extends Wrapper<T>
    implements Compare<Children, R>, Nested<Children, Children>, Join<Children>, Func<Children, R> {
 AbstractLambdaWrapper

抽象类,AbstractWrapper的子类,确定字段参数为方法引用类型 

 Lambda 语法使用 Wrapper统一处理解析 lambda 获取 column

代码语言:javascript
复制
public abstract class AbstractLambdaWrapper<T, Children 
    extends AbstractLambdaWrapper<T, Children>>
    extends AbstractWrapper<T, SFunction<T, ?>, Children> {
QueryWrapper

类,AbstractWrapper的子类,如果我们需要传递String类型的字段信息,创建该对象

代码语言:javascript
复制
public class QueryWrapper<T> 
    extends AbstractWrapper<T, String, QueryWrapper<T>>
    implements Query<QueryWrapper<T>, T, String> 
LambdaQueryWrapper

类,AbstractLambdaWrapper的子类,如果我们需要传递方法引用方式的字段信息,创建该对象 

代码语言:javascript
复制
public class LambdaQueryWrapper<T> 
    extends AbstractLambdaWrapper<T, LambdaQueryWrapper<T>>
    implements Query<LambdaQueryWrapper<T>, T, SFunction<T, ?>> {

该图为以上各类的关系,我们在编写代码的时候,只需要关注QueryWrapper和LambdaQueryWrapper 

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2023-09-15,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 为什么需要条件构造器?
  • 基本介绍
  • Wrapper
  •  AbstractWrapper
  •  AbstractLambdaWrapper
  • QueryWrapper
  • LambdaQueryWrapper
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档