本文讲解MyBatis-Plus 中的 QueryWrapper
QueryWrapper
是 MyBatis-Plus
中封装的一种查询条件构造器,它有多个实例方法可以链式调用,能够方便地构造各种查询条件。下面将结合具体案例,给出一些常见的使用方式。
在进行基本的查询时,我们往往只需要指定目标表名和查询条件即可,对应到 QueryWrapper
中则是如下所示:
QueryWrapper<User> wrapper = new QueryWrapper<>();
wrapper.eq("name", "张三").eq("age", 18);
List<User> users = userMapper.selectList(wrapper);
上述代码中,我们传入了 user 表的查询条件,并执行了查询操作,最后返回了符合条件的用户列表。
另外,还有一些针对某些常见场景的简写方法,例如 eq
、ne
、lt
、le
、gt
、ge
等等,都能够快速构造相应的查询条件。
// 查询年龄大于等于 18 岁的用户
QueryWrapper<User> wrapper = new QueryWrapper<>();
wrapper.ge("age", 18);
List<User> users = userMapper.selectList(wrapper);
// 查询性别为男且年龄小于 30 的用户
QueryWrapper<User> wrapper = new QueryWrapper<>();
wrapper.eq("sex", "男").lt("age", 30);
List<User> users = userMapper.selectList(wrapper);
在进行模糊查询时,我们需要使用到 like
关键字。在 QueryWrapper
中,则需要调用 like
、notLike
等方法。
// 查询用户名包含 "张" 的用户
QueryWrapper<User> wrapper = new QueryWrapper<>();
wrapper.like("name", "张");
List<User> users = userMapper.selectList(wrapper);
// 查询年龄不包含 "1" 的用户
QueryWrapper<User> wrapper = new QueryWrapper<>();
wrapper.notLike("age", "1");
List<User> users = userMapper.selectList(wrapper);
如果需要查询某个区间内的数据,就需要用到 between
关键字。在 QueryWrapper
中也有类似的操作:
// 查询年龄在 18 到 30 之间的用户
QueryWrapper<User> wrapper = new QueryWrapper<>();
wrapper.between("age", 18, 30);
List<User> users = userMapper.selectList(wrapper);
在向数据库查询一组指定值时,可以使用 in
关键字。在 QueryWrapper
中同样有类似的实现方式:
// 查询男性用户
QueryWrapper<User> wrapper = new QueryWrapper<>();
List<String> sexList = Arrays.asList("男");
wrapper.in("sex", sexList);
List<User> users = userMapper.selectList(wrapper);
以上就是 MyBatis-Plus
中常见的 QueryWrapper
操作。通过灵活地调用不同方法,我们可以方便地完成各种条件查询操作。