首页 > 作文

Mybatis plus where添加括号方式

更新时间:2023-04-04 14:04:13 阅读: 评论:0

目录
mybatis plus where添加括号where或and后面的条件用括号括起来

mybatis plus where添加括号

list<string> list = xxxx;querywrapper querywrapper = new querywrapper<>();querywrapper.and(wrapper -> {   for(string bm : list) {    wrapper.like("xxxxx", bm).or();   }   return wrapper;  });querywrapper.like("xx", "xxx");

打印的效果大概如下:

lect * from tabl鼓励读书的唯美句子e_name where (cola like ‘%xx%’艺术学院招生要求 or cola like ‘%xx%’) and colb like ‘%xx%’

where或and后面的条件用括号括起来

今天在使用mybatisplus时需要将and后面的or条件使用括号包起来

  @apioperation(value = "查看粉丝列表"方向向量是什么, notes = "查看粉丝列表")  @postmapping("/fanslist")  public resultvo<resultlistvo<litemallbusiness>> fanslist(@requestparam(value = "bid") integer bid,                              @requestparam(value = "nickname", required = fal) string nickname) {   try {      querywrapper<litemallbusiness> querywrapperw = new querywrapper<litemallbusiness>();      querywrapperw.eq("pid", bid).or().eq("pid2",bid);      if (nickname != null && !nickname.eq辽宁省普通高考报名系统uals("")) {        querywrapperw.like("nick_name", nickname);      }      querywrapperw.eq("deleted", fal);      list<litemallbusiness> litemall_businesslist = businessrvice.list(querywrapperw);      return responutil.oklist(litemall_businesslist);    } catch (exception e) {      e.printstacktrace();      return responutil.rious();    }  }

打印输出的sql

lect * form litemall_business where deleted=0 and pid=1 or pid2=1

此条sql是没办法满足我需要的数据

实际上的我需要执行的sql是需要把and后面的or用()包起来作为一个条件来查询

所以mybatisplus的原生查询方法需要修改为:

@apioperation(value = "查看粉丝列表", notes = "查看粉丝列表")  @postmapping("/fanslist")  public resultvo<resultlistvo<litemallbusiness>> fanslist(@requestparam(value = "bid") integer bid,                              @requestparam(value = "nickname", required = fal) string nickname) {   try {      querywrapper<litemallbusiness> querywrapperw = new querywrapper<litemallbusiness>();      querywrapperw.and(wrapper -> wrapper.eq("pid", bid).or().eq("pid2", bid)); //      querywrapperw.eq("pid", bid).or().eq("pid2",bid);      if (nickname != null && !nickname.equals("")) {        querywrapperw.like("nick_name", nickname);      }      querywrapperw.eq("deleted", fal);      list<litemallbusiness> litemall_businesslist = businessrvice.list(querywrapperw);      return responutil.oklist(litemall_businesslist);    } catch (exception e) {      e.printstacktrace();      return responutil.rious();    }  }

这样sql打印出来就是:

长江中下游

lect * form litemall_business where deleted=0 and (pid=1 or pid2=1)

这样就满足了我把and后面的or作为一个整体

这里需要注意的是:我的mybatisplus版本是3.0.7.1,这个版本中是没有andnew()的方法,所以需要使用这种方法时查看你的版本是否和我的一样,还有一点要注意,不要丢弃了语句中的.and()

这里顺便补充一下andnew()的写法

//mybatisplus版本3.0.7.1 jdk1.8querywrapperw.and(wrapper -> wrapper.eq("pid", bid).or().eq("pid2", bid));//执行sqllect * form litemall_business where deleted=0 and (pid=1 or pid2=1)//mybatisplus版本低于3.0.7.1querywrapperw.andnew().eq("pid", bid).or().eq("pid2", bid);//执行sqllect * form litemall_business where deleted=0 and (pid=1 or pid2=1)

其实最终执行的sql是一样的

以上为个人经验,希望能给大家一个参考,也希望大家多多支持www.887551.com。

本文发布于:2023-04-04 14:04:11,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/zuowen/25e447633889f5b1d2b195859085fe0f.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

本文word下载地址:Mybatis plus where添加括号方式.doc

本文 PDF 下载地址:Mybatis plus where添加括号方式.pdf

标签:括号   版本   粉丝   条件
相关文章
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图