2023-11-08 16:55

Mybatis-Plus LambdaQueryWrapper多条件嵌套查询

少尉

JavaEE

(2041)

(0)

收藏

LambdaQueryWrapper是MyBatis-Plus框架中的一个查询构造器,它提供了一种方便的方式来构建复杂的查询条件。其中,多条件嵌套查询方式允许我们在查询中嵌套多个条件,以实现更加灵活和精确的查询。

下面是使用lambdaQueryWrapper多条件嵌套查询方式的完整攻略,包括示例说明。

步骤一:导入依赖

首先,确保你的项目中已经引入了MyBatis-Plus框架的依赖。在pom.xml文件中添加以下依赖:

<dependency>
    <groupId>com.baomidou</groupId>
    <artifactId>mybatis-plus-boot-starter</artifactId>
    <version>最新版本</version>
</dependency>


步骤二:创建LambdaQueryWrapper对象

在使用lambdaQueryWrapper多条件嵌套查询方式之前,我们需要创建一个LambdaQueryWrapper对象。可以使用Wrappers.lambdaQuery()方法来创建该对象,示例代码如下:

LambdaQueryWrapper<Entity> queryWrapper = Wrappers.lambdaQuery();


步骤三:添加查询条件

接下来,我们可以使用queryWrapper对象来添加查询条件。lambdaQueryWrapper提供了一系列的方法来构建不同类型的查询条件,例如eq、like、between等。示例代码如下:

queryWrapper.eq(Entity::getField1, value1)
            .like(Entity::getField2, value2)
            .between(Entity::getField3, value3, value4);


步骤四:嵌套查询条件

使用lambdaQueryWrapper多条件嵌套查询方式时,我们可以通过and、or等方法来嵌套多个查询条件。示例代码如下:

queryWrapper.and(wrapper -> wrapper.eq(Entity::getField1, value1)
                                .ne(Entity::getField2, value2))
            .or(wrapper -> wrapper.like(Entity::getField3, value3)
                               .gt(Entity::getField4, value4));

在上面的示例中,我们使用and方法嵌套了两个查询条件,第一个条件是eq和ne的组合,第二个条件是like和gt的组合。

示例说明:

示例一:查询年龄大于等于18且性别为男的用户

LambdaQueryWrapper<User> queryWrapper = Wrappers.lambdaQuery();
queryWrapper.ge(User::getAge, 18)
            .eq(User::getGender, \"男\");
List<User> userList = userMapper.selectList(queryWrapper);

在上面的示例中,我们创建了一个LambdaQueryWrapper对象,并使用ge方法添加了一个大于等于18的年龄条件,使用eq方法添加了一个性别为男的条件。最后,我们通过selectList方法执行查询,并将结果保存在userList中。

示例二:查询名称包含\"张\"且年龄小于30或性别为女的用户

LambdaQueryWrapper<User> queryWrapper = Wrappers.lambdaQuery();
queryWrapper.like(User::getName, \"张\")
            .lt(User::getAge, 30)
            .or(wrapper -> wrapper.eq(User::getGender, \"女\"));
List<User> userList = userMapper.selectList(queryWrapper);

在上面的示例中,我们创建了一个LambdaQueryWrapper对象,并使用like方法添加了一个名称包含\"张\"的条件,使用lt方法添加了一个年龄小于30的条件。然后,我们使用or方法嵌套了一个性别为女的条件。最后,我们通过selectList方法执行查询,并将结果保存在userList中。

0条评论

点击登录参与评论