MyBatis-Plus 条件构造器

MyBatis-Plus 条件构造器

​ MyBatis-Plus 通过 QueryWrapper 对象让用户自由的构建 SQL 条件,简单便捷,没有额外的负担,能够有效提高开发效率。开发中大多数使用 LambdaQueryWrapper 对象。下图为 Wrapper 的子类关系:

在这里插入图片描述

条件构造器的参数说明如下:

查询方式说明
or“或”条件语句
and“且”条件语句
like模糊查询 like
notLike模糊查询 not like
existsexists 条件语句
notExistsnot exists 条件语句
isNullis null 值查询
isNotNullis not null 值查询
inin 查询
notInnot in 查询
groupBy分组查询
orderBy排序查询
orderByAsc升序
orderByDesc降序
having分组后筛选
eq等于“=”
ne不等于“<>”
betweenbetween 条件语句
gt大于“>”
ge大于等于“>=”
lt小于“<”
le小于等于“<=”

用法如下:

  • QueryWrapper
@Test
public void testQueryWrapper(){
    //新建条件构造器
    QueryWrapper<Student> queryWrapper = new QueryWrapper<>();
    queryWrapper.eq("gender","f").gt("age", "25").orderByDesc("id");
    //调用查询方法
    List<Student> students = studentMapper.selectList(queryWrapper);
    students.forEach(System.out::println);
}

因为构造时使用的是数据库字段,不是 Java 属性。这样对于开发不友好,但是使用 QueryWrapper 也能使用 Lambda表达式的方式,改进如下:

@Test
public void testQueryWrapper(){
    //新建条件构造器
    QueryWrapper<Student> queryWrapper = new QueryWrapper<>();
    queryWrapper.lambda().eq(Student::getGender,"f").gt(Student::getAge, "25").orderByDesc(Student::getId);
    //调用查询方法
    List<Student> students = studentMapper.selectList(queryWrapper);
    students.forEach(System.out::println);
}
  • LambdaQueryWrapper

开发中一般使用 LambdaQueryWrapper 构造器,开发中尽量少用或者不用具体值,而是用封装实体或者常量来表示,最终版如下:

@Test
public void testLambdaQueryWrapper(){
    //新建 Lambda 条件构造器
    LambdaQueryWrapper<Student> queryWrapper = new LambdaQueryWrapper<>();
    //新建对比的实体
    Student student = Student.builder().id(7).name("胡亥").age(23).gender("m").build();
    //自定义查询条件
    queryWrapper.lt(Student::getAge, student.getAge()).orderByDesc(Student::getId);
    //调用查询含条件构造器的查询方法
    List<Student> students = studentMapper.selectList(queryWrapper);
    //遍历
    students.forEach(System.out::println);
}
  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

我真真的是小白

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值