在使用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有所帮助。
本文来自极简博客,作者:每日灵感集,转载请注明原文链接:Mybatis-Plus的条件构造器QueryWrapper
微信扫一扫,打赏作者吧~