1.使用 LambdaQueryWrapper:

LambdaQueryWrapper<User> queryWrapper = Wrappers.lambdaQuery();
queryWrapper.eq(User::getName, "张三")
            .gt(User::getAge, 18);
List<User> userList = userMapper.selectList(queryWrapper);

在上述示例中,使用 Wrappers.lambdaQuery() 创建一个 LambdaQueryWrapper 对象,并通过 eq 和 gt 方法设置查询条件,最后调用 selectList 方法执行查询并返回结果。

2.使用 QueryWrapper

QueryWrapper<User> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("name", "张三")
            .gt("age", 18);
List<User> userList = userMapper.selectList(queryWrapper);

在上述示例中,使用 QueryWrapper 对象创建一个 QueryWrapper 对象,并通过 eq 和 gt 方法设置查询条件,最后调用 selectList 方法执行查询并返回结果。与 LambdaQueryWrapper 不同的是,这里需要传入字段名作为参数。


当使用 MyBatis-Plus 进行条件查询时,可以使用以下常见的条件查询用法,以便更灵活地构建查询条件:

等于(eq):

queryWrapper.eq("name", "张三");

不等于(ne):

queryWrapper.ne("age", 18);

大于(gt):

queryWrapper.gt("age", 18);

大于等于(ge):

queryWrapper.ge("age", 18);

小于(lt):

queryWrapper.lt("age", 30);

小于等于(le):

queryWrapper.le("age", 30);

模糊查询(like):

queryWrapper.like("name", "张");

左模糊查询(likeLeft):

queryWrapper.likeLeft("name", "张");

右模糊查询(likeRight):

queryWrapper.likeRight("name", "三");

在指定范围内查询(in):

queryWrapper.in("age", Arrays.asList(20, 30, 40));

不在指定范围内查询(notIn):

queryWrapper.notIn("age", Arrays.asList(20, 30, 40));

列为空查询(isNull):

queryWrapper.isNull("email");

列不为空查询(isNotNull):

queryWrapper.isNotNull("email");

复杂条件组合查询:MyBatis-Plus 还支持使用 and、or 和 not 等方法进行条件的逻辑组合查询。

queryWrapper.eq("name", "张三")
            .and(wrapper -> wrapper.lt("age", 30).or().isNotNull("email"))
            .notLike("address", "北京");

在上述示例中,使用 and 方法将两个条件进行逻辑与操作,使用 or 方法设置或者关系,使用 notLike 方法设置不满足条件的情况。

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐