美文网首页
MyBatis-Plus 条件构造器常用方法使用(相等判断、范围

MyBatis-Plus 条件构造器常用方法使用(相等判断、范围

作者: i小灰 | 来源:发表于2022-05-17 00:27 被阅读0次

    1 相等判断

    1.1 allEq

    全部条件都相等。

        /**
         * 使用条件构造器的allEq()方法
         *
         * @return
         */
        public List<UserEntity> getListByAllEq() {
            QueryWrapper<UserEntity> queryWrapper = new QueryWrapper();
            Map<String, Object> paramsMap = new HashMap<>();
            paramsMap.put("username", "1");
            paramsMap.put("pickname", "张三");
            queryWrapper.allEq(paramsMap);
            return userService.list(queryWrapper);
        }
    
    1.2 eq

    指定条件相等。

        /**
         * 使用条件构造器的eq()方法
         *
         * @return
         */
        public List<UserEntity> getListByEq() {
            QueryWrapper<UserEntity> queryWrapper = new QueryWrapper();
            queryWrapper.lambda().eq(UserEntity::getUsername, "123");
            return userService.list(queryWrapper);
        }
    
    1.3 ne

    指定条件不相等。

        /**
         * 使用条件构造器的ne()方法
         *
         * @return
         */
        @GetMapping("/getListByNe")
        public List<UserEntity> getListByNe() {
            QueryWrapper<UserEntity> queryWrapper = new QueryWrapper();
            queryWrapper.lambda().ne(UserEntity::getUsername, "123");
            return userService.list(queryWrapper);
        }
    

    2 范围判断

    2.1 gt

    大于指定条件。

        /**
         * 使用条件构造器的gt()方法
         *
         * @return
         */
        public List<UserEntity> getListByGt() {
            QueryWrapper<UserEntity> queryWrapper = new QueryWrapper();
            queryWrapper.lambda().gt(UserEntity::getUsername, "123");
            return userService.list(queryWrapper);
        }
    
    2.2 ge

    大于等于指定条件。

        /**
         * 使用条件构造器的ge()方法
         *
         * @return
         */
        @GetMapping("/getListByGe")
        public List<UserEntity> getListByGe() {
            QueryWrapper<UserEntity> queryWrapper = new QueryWrapper();
            queryWrapper.lambda().ge(UserEntity::getUsername, "123");
            return userService.list(queryWrapper);
        }
    
    2.3 lt

    小于指定条件。

        /**
         * 使用条件构造器的lt()方法
         *
         * @return
         */
        @GetMapping("/getListByLt")
        public List<UserEntity> getListByLt() {
            QueryWrapper<UserEntity> queryWrapper = new QueryWrapper();
            queryWrapper.lambda().lt(UserEntity::getUsername, "123");
            return userService.list(queryWrapper);
        }
    
    2.4 le

    小于等于指定条件。

        /**
         * 使用条件构造器的le()方法
         *
         * @return
         */
        @GetMapping("/getListByLe")
        public List<UserEntity> getListByLe() {
            QueryWrapper<UserEntity> queryWrapper = new QueryWrapper();
            queryWrapper.lambda().le(UserEntity::getUsername, "123");
            return userService.list(queryWrapper);
        }
    
    2.5 between

    介于指定范围之间。

        /**
         * 使用条件构造器的between()方法
         *
         * @return
         */
        @GetMapping("/getListByBetween")
        public List<UserEntity> getListByBetween() {
            QueryWrapper<UserEntity> queryWrapper = new QueryWrapper();
            queryWrapper.lambda().between(UserEntity::getUsername, "111", "123");
            return userService.list(queryWrapper);
        }
    
    2.6 notBetween

    不介于指定范围之间。

        /**
         * 使用条件构造器的notBetween()方法
         *
         * @return
         */
        @GetMapping("/getListByNotBetween")
        public List<UserEntity> getListByNotBetween() {
            QueryWrapper<UserEntity> queryWrapper = new QueryWrapper();
            queryWrapper.lambda().notBetween(UserEntity::getUsername, "111", "123");
            return userService.list(queryWrapper);
        }
    

    3 模糊匹配

    3.1 like

    某个字符串包含指定字符串。

        /**
         * 使用条件构造器的like()方法
         *
         * @return
         */
        @GetMapping("/getListByLike")
        public List<UserEntity> getListByLike() {
            QueryWrapper<UserEntity> queryWrapper = new QueryWrapper();
            queryWrapper.lambda().like(UserEntity::getUsername, "11");
            return userService.list(queryWrapper);
        }
    
    3.2 notLike

    某个字符串不包含指定字符串。

        /**
         * 使用条件构造器的notLike()方法
         *
         * @return
         */
        @GetMapping("/getListByNotLike")
        public List<UserEntity> getListByNotLike() {
            QueryWrapper<UserEntity> queryWrapper = new QueryWrapper();
            queryWrapper.lambda().notLike(UserEntity::getUsername, "11");
            return userService.list(queryWrapper);
        }
    
    3.3 likeLeft

    某个字符串以指定字符串结尾。

        /**
         * 使用条件构造器的likeLeft()方法
         *
         * @return
         */
        @GetMapping("/getListByLikeLeft")
        public List<UserEntity> getListByLikeLeft() {
            QueryWrapper<UserEntity> queryWrapper = new QueryWrapper();
            queryWrapper.lambda().likeLeft(UserEntity::getUsername, "12");
            return userService.list(queryWrapper);
        }
    
    3.4 likeRight

    某个字符串以指定字符串开头。

        /**
         * 使用条件构造器的likeRight()方法
         *
         * @return
         */
        @GetMapping("/getListByLikeRight")
        public List<UserEntity> getListByLikeRight() {
            QueryWrapper<UserEntity> queryWrapper = new QueryWrapper();
            queryWrapper.lambda().likeRight(UserEntity::getUsername, "12");
            return userService.list(queryWrapper);
        }
    

    4 非空判断

    4.1 isNull

    指定字段为null。

        /**
         * 使用条件构造器的isNull()方法
         *
         * @return
         */
        @GetMapping("/getListByIsNull")
        public List<UserEntity> getListByIsNull() {
            QueryWrapper<UserEntity> queryWrapper = new QueryWrapper();
            queryWrapper.lambda().isNull(UserEntity::getSex);
            return userService.list(queryWrapper);
        }
    
    4.2 isNotNull

    指定字段不为null。

        /**
         * 使用条件构造器的isNotNull()方法
         *
         * @return
         */
        @GetMapping("/getListByIsNotNull")
        public List<UserEntity> getListByIsNotNull() {
            QueryWrapper<UserEntity> queryWrapper = new QueryWrapper();
            queryWrapper.lambda().isNotNull(UserEntity::getSex);
            return userService.list(queryWrapper);
        }
    

    5 in判断

    5.1 in

    满足指定条件之一。

        /**
         * 使用条件构造器的in()方法
         *
         * @return
         */
        @GetMapping("/getListByIn")
        public List<UserEntity> getListByIn() {
            QueryWrapper<UserEntity> queryWrapper = new QueryWrapper();
            queryWrapper.lambda().in(UserEntity::getUsername, "11", "123");
            return userService.list(queryWrapper);
        }
    
    5.2 notIn

    不满足指定条件之一。

        /**
         * 使用条件构造器的notIn()方法
         *
         * @return
         */
        @GetMapping("/getListByNotIn")
        public List<UserEntity> getListByNotIn() {
            QueryWrapper<UserEntity> queryWrapper = new QueryWrapper();
            queryWrapper.lambda().notIn(UserEntity::getUsername, "11", "123");
            return userService.list(queryWrapper);
        }
    
    5.3 inSql

    满足指定条件之一。

        /**
         * 使用条件构造器的inSql()方法
         *
         * @return
         */
        @GetMapping("/getListByInSql")
        public List<UserEntity> getListByInSql() {
            QueryWrapper<UserEntity> queryWrapper = new QueryWrapper();
            queryWrapper.lambda().inSql(UserEntity::getUsername, "11,123");
            return userService.list(queryWrapper);
        }
    
    5.4 notInSql

    不满足指定条件之一。

        /**
         * 使用条件构造器的notInSql()方法
         *
         * @return
         */
        @GetMapping("/getListByNotInSql")
        public List<UserEntity> getListByNotInSql() {
            QueryWrapper<UserEntity> queryWrapper = new QueryWrapper();
            queryWrapper.lambda().notInSql(UserEntity::getUsername, "11,123");
            return userService.list(queryWrapper);
        }
    

    6 分组

    6.1 groupBy

    按字段值分组,每一组只会出现一条数据。

        /**
         * 使用条件构造器的groupBy()方法
         *
         * @return
         */
        @GetMapping("/getListByGroupBy")
        public List<UserEntity> getListByGroupBy() {
            QueryWrapper<UserEntity> queryWrapper = new QueryWrapper();
            queryWrapper.lambda().groupBy(UserEntity::getSex);
            return userService.list(queryWrapper);
        }
    

    7 排序

    7.1 orderByAsc

    根据指定字段升序排序。

        /**
         * 使用条件构造器的orderByAsc()方法
         *
         * @return
         */
        @GetMapping("/getListByOrderByAsc")
        public List<UserEntity> getListByOrderByAsc() {
            QueryWrapper<UserEntity> queryWrapper = new QueryWrapper();
            queryWrapper.lambda().orderByAsc(UserEntity::getUsername);
            return userService.list(queryWrapper);
        }
    
    7.2 orderByDesc

    根据指定字段降序排序。

        /**
         * 使用条件构造器的orderByDesc()方法
         *
         * @return
         */
        @GetMapping("/getListByOrderByDesc")
        public List<UserEntity> getListByOrderByDesc() {
            QueryWrapper<UserEntity> queryWrapper = new QueryWrapper();
            queryWrapper.lambda().orderByDesc(UserEntity::getUsername);
            return userService.list(queryWrapper);
        }
    
    7.3 orderBy

    根据指定字段升序/降序排序。

        /**
         * 使用条件构造器的orderBy()方法
         *
         * @return
         */
        @GetMapping("/getListByOrderBy")
        public List<UserEntity> getListByOrderBy() {
            QueryWrapper<UserEntity> queryWrapper = new QueryWrapper();
            queryWrapper.lambda().orderBy(true, false, UserEntity::getUsername);
            return userService.list(queryWrapper);
        }
    
    注:
    • (1)第一个参数必须为true。

    • (2)第二个参数为true则升序排序,为false则降序排序。

    8 条件判断

    8.1 having

    跟sql里面的having类似。

        /**
         * 使用条件构造器的having()方法
         *
         * @return
         */
        @GetMapping("/getListByHaving")
        public List<Map<String, Object>> getListByHaving() {
            QueryWrapper<UserEntity> queryWrapper = new QueryWrapper();
            queryWrapper.select("password,count(*) as sexCount")
                    .groupBy("password")
                    .having("count(*)>1");
            return userService.listMaps(queryWrapper);
        }
    

    注:

    (1)having()需要配合select()、groupBy()一起配合使用。

    (2)having里面只能使用聚合函数。

    8.2 func

    主要方便在出现if...else下调用不同方法能不断链。

        /**
         * 使用条件构造器的func()方法
         *
         * @return
         */
        @GetMapping("/getListByFunc")
        public List<UserEntity> getListByFunc() {
            LambdaQueryWrapper<UserEntity> queryWrapper = Wrappers.<UserEntity>lambdaQuery();
            queryWrapper.func(x -> {
                if (true) {
                    x.eq(UserEntity::getUsername, 1);
                } else {
                    x.eq(UserEntity::getUsername, 1);
                }
            });
            return userService.list(queryWrapper);
        }
    

    9 逻辑判断

    9.1 and

    与逻辑判断。

        /**
         * 使用条件构造器的and()方法
         *
         * @return
         */
        @GetMapping("/getListByAnd")
        public List<UserEntity> getListByAnd() {
            QueryWrapper<UserEntity> queryWrapper = new QueryWrapper();
            queryWrapper.lambda().eq(UserEntity::getPassword, "123456")
                    .and(t -> t.eq(UserEntity::getSex, "02"));
            return userService.list(queryWrapper);
        }
    
    9.2 or

    或逻辑判断。

        /**
         * 使用条件构造器的or()方法
         *
         * @return
         */
        @GetMapping("/getListByOr")
        public List<UserEntity> getListByOr() {
            QueryWrapper<UserEntity> queryWrapper = new QueryWrapper();
            queryWrapper.lambda().eq(UserEntity::getPassword, "123")
                    .or(t -> t.eq(UserEntity::getSex, "02"));
            return userService.list(queryWrapper);
        }
    

    10 存在判断

    10.1 exists

    exists用于检查子查询是否会返回数据,该子查询实际上并不返回任何数据,有查询数据返回值为true,没有查询数据返回值为false。

        /**
         * 使用条件构造器的exists()方法
         *
         * @return
         */
        @GetMapping("/getListByExists")
        public List<UserEntity> getListByExists() {
            QueryWrapper<UserEntity> queryWrapper = new QueryWrapper();
            queryWrapper.exists("select * from users where password='123'");
            return userService.list(queryWrapper);
        }
    
    10.2 notExists

    notExists用于检查子查询是否不会返回数据,该子查询实际上并不返回任何数据,有查询数据返回值为false,没有查询数据返回值为true。

        /**
         * 使用条件构造器的notExists()方法
         *
         * @return
         */
        @GetMapping("/getListByNotExists")
        public List<UserEntity> getListByNotExists() {
            QueryWrapper<UserEntity> queryWrapper = new QueryWrapper();
            queryWrapper.notExists("select * from users where password='123111'");
            return userService.list(queryWrapper);
        }
    

    11 查询字段

    11.1 select
        /**
         * 使用条件构造器的select()方法
         *
         * @return
         */
        @GetMapping("/getListBySelect")
        public List<UserEntity> getListBySelect() {
            QueryWrapper<UserEntity> queryWrapper = new QueryWrapper();
            queryWrapper.select("username,password");
            return userService.list(queryWrapper);
        }
    
    其他不错的推荐文章:

    MyBatis-Plus官网教程
    美团文章聊聊 clean code
    阿里巴巴Java开发手册
    阿里巴巴Android开发手册
    Java8 Stream:集合的筛选、归约、分组、聚合等...

    相关文章

      网友评论

          本文标题:MyBatis-Plus 条件构造器常用方法使用(相等判断、范围

          本文链接:https://www.haomeiwen.com/subject/kpjwurtx.html