Mybatis-Plus中的条件构造器

Mybatis-Plus中的条件构造器(Wrapper)用于构建复杂的SQL查询和更新语句。QueryWrapper适用于查询操作,UpdateWrapper适用于更新操作,两者继承自AbstractWrapper并提供多种条件设置方法,如ge、gt、le、lt、eq、ne、between、notBetween、allEq、like、notLike、in、notIn等。此外,它们还支持orderBy、select、last和set、setSql等方法,用于排序、指定字段查询、自定义SQL拼接等。
摘要由CSDN通过智能技术生成

Mybatis-Plus中的条件构造器

​ 条件构造器(Wrapper)的作用:

​ MP提供的通用Mapper中,删改查(没有insert)的方法通常会需要我们传入一个条件构造器,用来生成最后执行的SQL语句。

​ 比如List selectList( Wrapper wrapper)方法,当我们传入null时,默认生成的语句就是select * from xxx,这条语句没有查询条件,排序,子查询,模糊查询并且固定查询所有的字段,如果我们需要一些复杂的查询条件,就可以使用条件构造器来指定我们的SQL需要拼接那些查询条件。

在这里插入图片描述

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

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

QueryWrapper : Entity 对象封装操作类,不是用lambda语法

UpdateWrapper : Update 条件封装,用于Entity对象更新操作

AbstractLambdaWrapper

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

LambdaQueryWrapper :

​ 看名称也能明白就是用于Lambda语法使用的查询Wrapper

LambdaUpdateWrapper

​ Lambda 更新封装Wrapper

​ 实际使用中,

​ 如果要使用MP的查询、删除方法,通常使用QueryWrapper作为条件的封装实现类;因为它的功能比较强大。

​ 如果要使用MP的修改方法,通常使用UpdateWrapper作为条件的封装实现类,因为它提供了一些独有的方法,适用于update操作,比如set和setSql方法;

​ 其实QueryWrapperUpdateWrapper的大多数方法都是继承自AbstractWrapper,两者在大部分条件下都是可以互相替换的。

​ 使用方式很简单,就是创建一个Wrapper的实现类对象,然后调用其中的方法就可以进行设置了。下面是一些Wrapper中常用的方法

1、ge、gt、le、lt、eq、ne、isNull、isNotNull

@Test
public void testDelete() {
   
    QueryWrapper<User> queryWrapper = new QueryWrapper<>();
    queryWrapper
        .isNull("name")
        .ge("age", 12)
        .isNotNull("email");
    int result = userMapper.delete(queryWrapper);
    System.out.println("delete return count = " + result);
}

Execute SQL:(已经开启了逻辑删除功能)

UPDATE user SET deleted=1 

                        WHERE deleted=0 

                        AND 

                        name IS NULL 

                        AND 

                        age >= ? 

                        AND 

                        email IS NOT NULL 

2、between、notBetween

@Test
public void testSelectCount() {
   
    QueryWrapper<User> queryWrapper = new QueryWrapper<>();
    queryWrapper.between("age", 20, 30);
    Integer count = userMapper.selectCount(queryWrapper);
    System.out.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值