Mybatis-plus学习笔记(五)条件构造器

1.快速开始
2.代码生成器
3.CRUD接口——Service CRUD接口
4.CRUD接口——Mapper CRUD接口
5.条件构造器
6.分页插件
7.Sequence主键
8.自定义ID生成器
9.逻辑删除
10.乐观锁插件
11.自动填充

我们在前面的增删改查中仅仅只使用mybatis-plus提供的最简单的方法来操作数据库,要么就直接删,要么就直接查。

学习了条件构造器之后,我们就可以实现sql语句中的条件查询,模糊查询等等功能

1.使用wrapper要注意

在这里插入图片描述

2.AbstactWrapper介绍

在这里插入图片描述

3.常用方法

数据库数据如下:

在这里插入图片描述

3.1 allEq

allEq(Map<R, V> params)
allEq(Map<R, V> params, boolean null2IsNull)
allEq(boolean condition, Map<R, V> params, boolean null2IsNull)

在这里插入图片描述
在这里插入图片描述
测试代码:

@RequestMapping("/test")
public void test() {
    System.out.println("___allEq___");
    QueryWrapper<User> wrapper = new QueryWrapper<>();

    Map<String, String> map = new HashMap<>();
    map.put("email", "2284612137@qq.com");
    List<User> list = userService.list(wrapper.allEq(map));
    list.forEach(System.out::println);
}

输出结果:
在这里插入图片描述

3.2 eq

在这里插入图片描述
测试代码:

@RequestMapping("/test")
public void test() {
    System.out.println("___eq___");
    QueryWrapper<User> wrapper = new QueryWrapper<>();
    List<User> list = userService.list(wrapper.eq("name", "hk3"));
    list.forEach(System.out::println);
}

输出结果:

在这里插入图片描述

3.3 ne

在这里插入图片描述
测试代码:

  @RequestMapping("/test")
    public void test() {
        System.out.println("___ne___");
        QueryWrapper<User> wrapper = new QueryWrapper<>();
        List<User> list = userService.list(wrapper.ne("name", "hk3"));
        list.forEach(System.out::println);
    }

输出结果:
在这里插入图片描述

3.4 gt

在这里插入图片描述
测试代码:

  @RequestMapping("/test")
    public void test() {
        System.out.println("___gt___");
        QueryWrapper<User> wrapper = new QueryWrapper<>();
        List<User> list = userService.list(wrapper.gt("age", 27));
        list.forEach(System.out::println);
    }

输出结果:
在这里插入图片描述

3.5 ge

在这里插入图片描述
测试代码:

 @RequestMapping("/test")
    public void test() {
        System.out.println("___ge___");
        QueryWrapper<User> wrapper = new QueryWrapper<>();
        List<User> list = userService.list(wrapper.ge("age", 27));
        list.forEach(System.out::println);
    }

输出结果:

在这里插入图片描述

3.6 lt

在这里插入图片描述
测试代码:

 @RequestMapping("/test")
    public void test() {
        System.out.println("___lt___");
        QueryWrapper<User> wrapper = new QueryWrapper<>();
        List<User> list = userService.list(wrapper.lt("age", 27));
        list.forEach(System.out::println);
    }

输出结果:

在这里插入图片描述

3.7 le

在这里插入图片描述
测试代码:

 @RequestMapping("/test")
    public void test() {
        System.out.println("___le___");
        QueryWrapper<User> wrapper = new QueryWrapper<>();
        List<User> list = userService.list(wrapper.le("age", 27));
        list.forEach(System.out::println);
    }

输出结果:

在这里插入图片描述

3.8 between

在这里插入图片描述
测试代码:

   @RequestMapping("/test")
    public void test() {
        System.out.println("___between___");
        QueryWrapper<User> wrapper = new QueryWrapper<>();
        List<User> list = userService.list(wrapper.between("age", 20, 27));
        list.forEach(System.out::println);
    }

输出结果:

在这里插入图片描述

3.9 notBetween

在这里插入图片描述
测试代码:

   @RequestMapping("/test")
    public void test() {
        System.out.println("___notBetween___");
        QueryWrapper<User> wrapper = new QueryWrapper<>();
        List<User> list = userService.list(wrapper.notBetween("age", 20, 27));
        list.forEach(System.out::println);
    }

输出结果:

在这里插入图片描述

3.9 like

在这里插入图片描述
测试代码:

 @RequestMapping("/test")
    public void test() {
        System.out.println("___like___");
        QueryWrapper<User> wrapper = new QueryWrapper<>();
        List<User> list = userService.list(wrapper.like("name", "hk%"));
        list.forEach(System.out::println);
    }

输出结果:

在这里插入图片描述

3.10 notLike

在这里插入图片描述
测试代码:

   @RequestMapping("/test")
    public void test() {
        System.out.println("___notLike___");
        QueryWrapper<User> wrapper = new QueryWrapper<>();
        List<User> list = userService.list(wrapper.notLike("name", "hk%"));
        list.forEach(System.out::println);
    }

输出结果:

在这里插入图片描述

3.11 likeLeft

在这里插入图片描述
测试代码:

   @RequestMapping("/test")
    public void test() {
        System.out.println("___likeLeft___");
        QueryWrapper<User> wrapper = new QueryWrapper<>();
        List<User> list = userService.list(wrapper.likeLeft("name", "%k11"));
        list.forEach(System.out::println);
    }

输出结果:

在这里插入图片描述

3.12 likeRight

在这里插入图片描述
测试代码:

  @RequestMapping("/test")
    public void test() {
        System.out.println("___likeRight___");
        QueryWrapper<User> wrapper = new QueryWrapper<>();
        List<User> list = userService.list(wrapper.likeLeft("name", "hk%"));
        list.forEach(System.out::println);
    }

输出结果:

在这里插入图片描述

3.13 isNull

在这里插入图片描述
测试代码:

  @RequestMapping("/test")
    public void test() {
        System.out.println("___isNull___");
        QueryWrapper<User> wrapper = new QueryWrapper<>();
        List<User> list = userService.list(wrapper.isNull("name"));
        list.forEach(System.out::println);
    }

输出结果:

在这里插入图片描述

3.14 isNotNull

在这里插入图片描述

测试代码:

   @RequestMapping("/test")
    public void test() {
        System.out.println("___isNotNull___");
        QueryWrapper<User> wrapper = new QueryWrapper<>();
        List<User> list = userService.list(wrapper.isNotNull("name"));
        list.forEach(System.out::println);
    }

输出结果:

在这里插入图片描述

3.15 in

在这里插入图片描述
测试代码:

 @RequestMapping("/test")
    public void test() {
        System.out.println("___in___");
        QueryWrapper<User> wrapper = new QueryWrapper<>();
        List<User> list = userService.list(wrapper.in("age", 25 ,27));
        list.forEach(System.out::println);
    }

输出结果:

在这里插入图片描述

3.16 notIn

在这里插入图片描述

测试代码:

  @RequestMapping("/test")
    public void test() {
        System.out.println("___notIn___");
        QueryWrapper<User> wrapper = new QueryWrapper<>();
        List<User> list = userService.list(wrapper.notIn("age", 25 ,27));
        list.forEach(System.out::println);
    }

输出结果:

在这里插入图片描述

3.17 inSql

在这里插入图片描述
测试代码:

@RequestMapping("/test")
public void test() {
    System.out.println("___inSql___");
    QueryWrapper<User> wrapper = new QueryWrapper<>();
    List<User> list = userService.list(wrapper.inSql("age", "select age from user where age > 25"));
    list.forEach(System.out::println);
}

输出结果:

在这里插入图片描述

3.18 notInSql

在这里插入图片描述
测试代码:

@RequestMapping("/test")
public void test() {
    System.out.println("___notInSql___");
    QueryWrapper<User> wrapper = new QueryWrapper<>();
    List<User> list = userService.list(wrapper.notInSql("age", "select age from user where age > 25"));
    list.forEach(System.out::println);
}

输出结果:

在这里插入图片描述

3.19 groupBy

在这里插入图片描述
测试代码:

@RequestMapping("/test")
public void test() {
    System.out.println("___groupBy___");
    QueryWrapper<User> wrapper = new QueryWrapper<>();
    List<User> list = userService.list(wrapper.groupBy("id", "name"));
    list.forEach(System.out::println);
}

输出结果:
在这里插入图片描述

3.20 orderBy

在这里插入图片描述
测试代码:

 @RequestMapping("/test")
    public void test() {
        System.out.println("___orderByAsc___");
        QueryWrapper<User> wrapper = new QueryWrapper<>();
        List<User> list = userService.list(wrapper.orderByAsc("id"));
        list.forEach(System.out::println);

        System.out.println("___orderByDesc__");
        QueryWrapper<User> wrapper1 = new QueryWrapper<>();
        List<User> list1 = userService.list(wrapper1.orderByDesc("id"));
        list1.forEach(System.out::println);

        System.out.println("___orderBy____");
        QueryWrapper<User> wrapper2 = new QueryWrapper<>();
        List<User> list3 = userService.list(wrapper2.orderBy(true, true, "id"));
        list3.forEach(System.out::println);
    }

输出结果:

在这里插入图片描述

3.21 func

orderBy
测试代码:

  @RequestMapping("/test")
    public void test() {
        System.out.println("___orderByAsc___");
        QueryWrapper<User> queryWrapper = new QueryWrapper<>();
        List<User> list = userService.list(queryWrapper.func(i -> {
            if (true) {
                i.eq("id", 2);
            } else {
                i.eq("id", 3);
            }
        }));
        list.forEach(System.out::println);
    }

输出结果:

在这里插入图片描述

3.22 or

在这里插入图片描述
测试代码:

@RequestMapping("/test")
public void test() {
    System.out.println("___or___");
    QueryWrapper<User> queryWrapper = new QueryWrapper<>();
    List<User> list = userService.list(queryWrapper
            .eq("id",2)
            .or()
            .eq("name", "hk11")
    );
    list.forEach(System.out::println);
}

输出结果:

在这里插入图片描述

3.23 and

在这里插入图片描述
测试代码:

   @RequestMapping("/test")
    public void test() {
        System.out.println("___and___");
        QueryWrapper<User> queryWrapper = new QueryWrapper<>();
        List<User> list = userService.list(queryWrapper
                .and(i -> i.eq("email", "2284612137@qq.com").ne("id", "2"))
        );
        list.forEach(System.out::println);
    }

输出结果:

在这里插入图片描述

3.24 nested

在这里插入图片描述
测试代码:

@RequestMapping("/test")
public void test() {
    System.out.println("___nested___");
    QueryWrapper<User> queryWrapper = new QueryWrapper<>();
    List<User> list = userService.list(queryWrapper
            .nested(i -> i.eq("email", "2284612137@qq.com").ne("id", "2"))
    );
    list.forEach(System.out::println);
}

输出结果:

在这里插入图片描述

3.25 apply

在这里插入图片描述
测试代码:

@RequestMapping("/test")
public void test() {
    System.out.println("___apply__");
    QueryWrapper<User> queryWrapper = new QueryWrapper<>();
    List<User> list = userService.list(queryWrapper
            .apply("id={0}", 2)
    );
    list.forEach(System.out::println);
}

输出结果:

在这里插入图片描述

3.26 last

在这里插入图片描述
测试代码:

   @RequestMapping("/test")
    public void test() {
        System.out.println("___last__");
        QueryWrapper<User> queryWrapper = new QueryWrapper<>();
        List<User> list = userService.list(queryWrapper
                .last("limit 1")
        );
        list.forEach(System.out::println);
    }
}

输出结果:

在这里插入图片描述

3.27 exists

在这里插入图片描述
代码测试:

@RequestMapping("/test")
public void test() {
    System.out.println("___exists__");
    QueryWrapper<User> queryWrapper = new QueryWrapper<>();
    List<User> list = userService.list(queryWrapper
            .exists("select id from user where id = 2")
    );
    list.forEach(System.out::println);

    System.out.println("__notExists");
    List<User> list1 = userService.list(queryWrapper
            .notExists("select id from user where id = 2")
    );
    list1.forEach(System.out::println);
}

输出结果:

在这里插入图片描述

3.使用 Wrapper 自定义SQL

在使用了mybatis-plus之后, 自定义SQL的同时也想使用Wrapper的便利应该怎么办?
在mybatis-plus版本3.0.7得到了完美解决 版本需要大于或等于3.0.7, 以下两种方案取其一即可

在这里插入图片描述

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值