MyBatisPlus(十一)包含查询:in

说明

包含查询,对应SQL语句中的 in 语句,查询参数包含在入参列表之内的数据。

in

    @Test
    void inNonEmptyList() {
        // 非空列表,作为参数
        List<Integer> ages = Stream.of(18, 20, 22).collect(Collectors.toList());
        in(ages);
    }


    @Test
    void inEmptyList() {
        // 空列表,作为参数
        List<Integer> ages = new ArrayList<>();
        in(ages);
    }


    /**
     * 查询用户列表, 查询条件:年龄包含在参数列表之内。
     * 
* 入参不为空和空列表时,“包含”条件生效。 */
void in(List<Integer> ages) { LambdaQueryWrapper<User> wrapper = new LambdaQueryWrapper<>(); wrapper.in(!CollectionUtils.isEmpty(ages), User::getAge, ages); List<User> users = mapper.selectList(wrapper); log.info(users.toString()); }
  • 非空列表,作为参数

MyBatisPlus(十一)包含查询:in_第1张图片

  • 空列表,作为参数

MyBatisPlus(十一)包含查询:in_第2张图片

notIn

    /**
     * 查询用户列表, 查询条件:年龄不包含在参数列表之内。
     */
    @Test
    void notIn() {
        List<Integer> ages = Stream.of(18, 20, 22).collect(Collectors.toList());
        LambdaQueryWrapper<User> wrapper = new LambdaQueryWrapper<>();
        wrapper.notIn(!CollectionUtils.isEmpty(ages), User::getAge, ages);
        List<User> users = mapper.selectList(wrapper);
        log.info(users.toString());
    }

MyBatisPlus(十一)包含查询:in_第3张图片

inSql

不建议使用此方法。建议直接使用原生 MyBatis 去写SQL。

    /**
     * 查询用户列表, 查询条件:年龄包含在"sql语句的查询结果"之内。
     */
    @Test
    void inSql() {
        LambdaQueryWrapper<User> wrapper = new LambdaQueryWrapper<>();
        wrapper.inSql(User::getAge, "select age from tb_user where age > 25");
        List<User> users = mapper.selectList(wrapper);
        log.info(users.toString());
    }

MyBatisPlus(十一)包含查询:in_第4张图片

notInSql

不建议使用此方法。建议直接使用原生 MyBatis 去写SQL。

    /**
     * 查询用户列表, 查询条件:年龄不包含在"sql语句的查询结果"之内。
     */
    @Test
    void notInSql() {
        LambdaQueryWrapper<User> wrapper = new LambdaQueryWrapper<>();
        wrapper.notInSql(User::getAge, "select age from tb_user where age > 25");
        List<User> users = mapper.selectList(wrapper);
        log.info(users.toString());
    }

MyBatisPlus(十一)包含查询:in_第5张图片

数据库内的数据

MyBatisPlus(十一)包含查询:in_第6张图片

你可能感兴趣的:(MyBatis,mybatis-plus)