引言
Mybatis-plus是基于Mybatis的增强版ORM框架,提供了很多强大的功能来简化数据库操作。其中之一就是QueryWrapper,它是Mybatis-plus中用于构建查询条件的工具类。QueryWrapper提供了多种用法,本文将深入探讨。
1. 基本用法
QueryWrapper的基本用法非常简单,可以通过chain式编程来实现复杂的查询条件。首先需要导入相关的类:
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.StringUtils;
然后就可以使用QueryWrapper的各种方法了:
eq
:等于ne
:不等于gt
:大于ge
:大于等于lt
:小于le
:小于等于isNotNull
:不为空isNull
:为空in
:在某个列表中notIn
:不在某个列表中like
:模糊匹配between
:在某个范围内notBetween
:不在某个范围内orderByAsc
:升序排序orderByDesc
:降序排序
以下是一个基本用法的示例:
QueryWrapper<User> wrapper = new QueryWrapper<>();
wrapper.eq("name", "张三").ge("age", 18).orderByAsc("id");
List<User> userList = userDao.selectList(wrapper);
2. 动态查询条件
QueryWrapper还支持动态查询条件,可以根据具体情况动态添加查询条件。比如,在搜索功能中,用户可以选择输入一个或多个查询条件,这时可以使用QueryWrapper来动态构建查询条件。
在动态查询条件中,要注意使用StringUtils.isNotEmpty
方法来判断查询条件是否为空,否则可能会出现空指针异常。以下是一个动态查询条件的示例:
String name = "张三";
Integer age = null;
QueryWrapper<User> wrapper = new QueryWrapper<>();
if (StringUtils.isNotEmpty(name)) {
wrapper.like("name", name);
}
if (age != null) {
wrapper.eq("age", age);
}
List<User> userList = userDao.selectList(wrapper);
3. 自定义查询条件
有时候,Mybatis-plus提供的方法还不能满足我们的需求,这时可以通过自定义查询条件来实现。自定义查询条件可以使用lambda表达式,使用起来非常方便。以下是一个自定义查询条件的示例:
QueryWrapper<User> wrapper = new QueryWrapper<User>()
.select("name", "age")
.lambda()
.like(User::getName, "张三")
.ge(User::getAge, 18)
.orderByAsc(User::getId);
List<User> userList = userDao.selectList(wrapper);
在以上示例中,通过select
方法指定只查询name和age字段,通过lambda
方法指定后面的查询条件使用lambda表达式来指定。
结论
本文介绍了Mybatis-plus中QueryWrapper的多种用法,包括基本用法、动态查询条件和自定义查询条件。QueryWrapper是Mybatis-plus中非常强大的一个功能,可以帮助我们简化数据库操作。希望本文对你有所帮助。
参考资料
本文来自极简博客,作者:彩虹的尽头,转载请注明原文链接:Mybatis-plus中的QueryWrapper的多种用法