MyBatis-Plus中的QueryWrapper
本文讲解MyBatis-Plus 中的 QueryWrapper
详细讲解
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 查询
在进行模糊查询时,我们需要使用到 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 查询
如果需要查询某个区间内的数据,就需要用到 between 关键字。在 QueryWrapper 中也有类似的操作:
// 查询年龄在 18 到 30 之间的用户 QueryWrapper<User> wrapper = new QueryWrapper<>(); wrapper.between("age", 18, 30); List<User> users = userMapper.selectList(wrapper);
In 查询
在向数据库查询一组指定值时,可以使用 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 操作。通过灵活地调用不同方法,我们可以方便地完成各种条件查询操作。