Mybatis-Plus的条件构造器QueryWrapper

 
更多

在使用Mybatis-Plus进行数据操作的过程中,我们经常需要处理各种复杂的查询和更新条件。Mybatis-Plus提供了QueryWrapper和UpdateWrapper这两个条件构造器,可以帮助我们灵活地构建各种条件。

QueryWrapper详解

QueryWrapper是用于构建查询条件的类。通过使用QueryWrapper,我们可以实现对数据库中的数据进行条件查询。

基本用法

首先,我们需要引入QueryWrapper类:

import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;

然后,我们可以使用QueryWrapper的构造函数创建一个QueryWrapper对象:

QueryWrapper<T> queryWrapper = new QueryWrapper<>();

同时,QueryWrapper也提供了链式调用的方式来设置条件:

QueryWrapper<T> queryWrapper = new QueryWrapper<T>()
    .eq("name", "张三")
    .ge("age", 18)
    .orderByAsc("create_time");

在上面的例子中,我们通过.eq()方法设置了一个等值查询条件,通过.ge()方法设置了一个大于等于的条件,通过.orderByAsc()方法设置了按照create_time字段升序排序。

常用方法

QueryWrapper提供了很多常用的方法来设置条件,下面我们来介绍一些常用的方法:

  • eq(column, value):等值条件查询
  • ne(column, value):不等值条件查询
  • gt(column, value):大于条件查询
  • ge(column, value):大于等于条件查询
  • lt(column, value):小于条件查询
  • le(column, value):小于等于条件查询
  • like(column, value):模糊查询
  • in(column, value):in查询
  • or():添加OR条件
  • and():添加AND条件
QueryWrapper<T> queryWrapper = new QueryWrapper<T>()
    .eq("name", "张三")
    .like("address", "北京")
    .or()
    .eq("gender", "男");

在上面的例子中,我们通过.like()方法添加了一个模糊查询条件,通过.or()方法添加了一个OR条件。

组合条件

除了上述介绍的单个条件之外,QueryWrapper还支持组合条件的方式。我们可以通过.lambda()方法来构建复杂的条件。

QueryWrapper<T> queryWrapper = new QueryWrapper<T>()
    .lambda()
    .like(T::getName, "张")
    .and(t -> t.ge(T::getAge, 18).le(T::getAge, 30));

在上面的例子中,我们使用了.lambda()方法来构建QueryWrapper,并通过.like()方法设置了一个使用T类的getName方法的模糊查询条件,通过.and()方法添加了一个AND条件。

UpdateWrapper详解

UpdateWrapper是用于构建更新条件的类。通过使用UpdateWrapper,我们可以实现对数据库中的数据进行条件更新。

基本用法

首先,我们需要引入UpdateWrapper类:

import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;

然后,我们可以使用UpdateWrapper的构造函数创建一个UpdateWrapper对象:

UpdateWrapper<T> updateWrapper = new UpdateWrapper<>();

同时,UpdateWrapper也提供了链式调用的方式来设置条件:

UpdateWrapper<T> updateWrapper = new UpdateWrapper<T>()
    .eq("name", "张三")
    .set("age", 20);

在上面的例子中,我们通过.eq()方法设置了一个等值更新条件,通过.set()方法设置了要更新的字段和值。

常用方法

UpdateWrapper提供了很多常用的方法来设置条件,下面我们来介绍一些常用的方法:

  • eq(column, value):等值条件更新
  • ne(column, value):不等值条件更新
  • gt(column, value):大于条件更新
  • ge(column, value):大于等于条件更新
  • lt(column, value):小于条件更新
  • le(column, value):小于等于条件更新
  • like(column, value):模糊更新
  • in(column, value):in更新
UpdateWrapper<T> updateWrapper = new UpdateWrapper<T>()
    .lambda()
    .like(T::getName, "张")
    .set(T::getAge, 20);

在上面的例子中,我们通过.like()方法设置了一个使用T类的getName方法的模糊更新条件,通过.set()方法设置了要更新的字段和值。

执行更新操作

通过调用Mybatis-Plus提供的BaseMapper的update方法,可以使用UpdateWrapper来执行更新操作。

int result = baseMapper.update(entity, updateWrapper);

在上述代码中,entity是要更新的实体对象,updateWrapper是设置的更新条件。

总结

通过使用Mybatis-Plus提供的QueryWrapper和UpdateWrapper,我们可以轻松地构建各种复杂的查询和更新条件。它们提供了丰富的方法来设置条件,同时也支持组合条件的方式,非常方便灵活。希望本文对你了解Mybatis-Plus的条件构造器QueryWrapper和UpdateWrapper有所帮助。

打赏

本文固定链接: https://www.cxy163.net/archives/7271 | 绝缘体

该日志由 绝缘体.. 于 2021年11月22日 发表在 未分类 分类下, 你可以发表评论,并在保留原文地址及作者的情况下引用到你的网站或博客。
原创文章转载请注明: Mybatis-Plus的条件构造器QueryWrapper | 绝缘体
关键字: , , , ,

Mybatis-Plus的条件构造器QueryWrapper:等您坐沙发呢!

发表评论


快捷键:Ctrl+Enter