QueryWrapper拼接条件添加括号、嵌套查询

Java拼接代码:

QueryWrapper<PostEntity> queryWrapper=new QueryWrapper<>();
String key = (String)params.get("key");
String status = (String)params.get("status");
queryWrapper.lambda().like(!ObjectUtil.isEmpty(key), PostEntity::getContent, key)
                .or()
                .like(!ObjectUtil.isEmpty(key), PostEntity::getTitle,key);

queryWrapper.eq(!ObjectUtil.isEmpty(status),"status",status);
queryWrapper.lambda().orderByDesc(PostEntity::getId);

SQL语句拼接结果:
在这里插入图片描述
在这里插入图片描述

添加括号的Java代码:

QueryWrapper<PostEntity> queryWrapper=new QueryWrapper<>();
String key = (String)params.get("key");
String status = (String)params.get("status");
// 查询时加括号,判断(!ObjectUtil.isEmpty(key))要放在外面
if(!ObjectUtil.isEmpty(key)) {
    queryWrapper.and(
            wrapper -> wrapper.lambda().like(PostEntity::getContent, key)
                    .or()
                    .like(PostEntity::getTitle,key)
    );
}
queryWrapper.eq(!ObjectUtil.isEmpty(status),"status",status);
queryWrapper.lambda().orderByDesc(PostEntity::getId);

拼接SQL语句结果:
在这里插入图片描述

queryWrapper写法拓展:

queryWrapper.lt()——小于
queryWrapper.le()——小于等于
queryWrapper.gt()——大于
queryWrapper.ge()——大于等于
queryWrapper.eq()——等于
queryWrapper.ne()——不等于
queryWrapper.betweeen(“age”,10,20)——age在值1020之间
queryWrapper.notBetweeen(“age”,10,20)——age不在值1020之间
queryWrapper.like(“属性”,“值”)——模糊查询匹配值‘%%’
queryWrapper.notLike(“属性”,“值”)——模糊查询不匹配值‘%%’
queryWrapper.likeLeft(“属性”,“值”)——模糊查询匹配最后一位值‘%值’
queryWrapper.likeRight(“属性”,“值”)——模糊查询匹配第一位值‘值%’
queryWrapper.isNull()——值为空或null
queryWrapper.isNotNull()——值不为空或null
queryWrapper.in(“属性”,条件,条件 )——符合多个条件的值
queryWrapper.notIn(“属性”,条件,条件 )——不符合多个条件的值
queryWrapper.or()——或者
queryWrapper.and()——和
queryWrapper.orderByAsc(“属性”)——根据属性升序排序
queryWrapper.orderByDesc(“属性”)——根据属性降序排序
queryWrapper.inSql(“sql语句”)——符合sql语句的值
queryWrapper.notSql(“sql语句”)——不符合SQL语句的值
queryWrapper.esists(“SQL语句”)——查询符合SQL语句的值
queryWrapper.notEsists(“SQL语句”)——查询不符合SQL语句的值
  • 2
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值