mybatis的if判断语句其实跟el表达式的if条件判断有些类似。

例如:

1 如果参数为数字类型的时候没有特俗需求的情况只需要判断是否为null即可。

例如:

如果有特俗需求,例如判断是否大于某个数的时候才行。只需要加上对应的条件判断即可

例如:

mybatis对于这种大于小于等等还有另一种形式。

例如:

对应关系:


gt            对应             >gte         对应              >=lt             对应              <(会报错  相关联的 "test" 属性值不能包含 '<' 字符)lte          对应               <=(会报错  相关联的 "test" 属性值不能包含 '<' 字符)

2 如果为字符串类型

2.1 如果不需要过滤空串的情况 仅仅判断null即可

例如:

2.2 如果需要过滤空串,添加空串判断即可 不支持 && 所以这里用 and or || 来做逻辑与或的判断

例如: 或者

2.3 如果判断字符串是否已某个特俗字符开头,结尾等。直接调用String的对应方法即可

例如:

2.4 是否是某个特定字符串,某些业务有此需要。

例如: 或者

注意:

这种形式的写法在参数类型是字符串的时候是没有问题的,

但是参数类型为非字符串类型的时候就需要写成

仅仅写成也会有很大可能会挂。

也许你会说非字符串的为什么要写成这样。这就要看特俗需要了。

例如:某一个sql片段是公用的,

该片段更新条件也用,但是当你需要将某一个字段更新成null的时候怎么办。

这个时候就可以通过传入一个特定的字符串来弄。当传入的字符串为特定字符串的时候就更新该字符串为null。

xxx=null

当然这样子貌似date型会挂。

通过 2.2 也可以看出mybatis对于字符串的相等不相等的判断也是有对应的特俗操作符的。


eq 对应 ==

neq 对应 !=


当然还可以看出来if的条件判断test是支持对象自身方法调用的,即使是自己写的方法,可以自己尝试。当然下面会有例子。

例如:里面可以用‘xxxx’.equals(xxxx) 字符串的比较两个字符串方法

xxxx.indexOf('ss') 判断字符串里面是否包含某个字符等等

3 判断list是否为空

上面说过,if条件判断可以直接调用对象自身的方法进行逻辑判断,所以list判空。可以调用.size()>0或者.isEmpty()

例如: ,

4 map参数同同理 取值的话 map.key(map中的key名字)即可

mybatis的if判断用法相关推荐

  1. mybatis if条件判断

    一.字符串(string)非空判断 <if test="name!=null and name!=''"> AND name = #{name} </if> ...

  2. mybatis 中 if-test 判断详解

    <if test="takeWay == '0'">]mybatis的if判断 单个的字符要写到双引号里面才行,改为<if test='takeWay == &q ...

  3. html中如何写if判断,HTML中的if判断用法

    {% if formname == 'Callrecords'%} Callrecords {% elif formname == 'Riderecords'%} Riderecords {% eli ...

  4. mybatis第三话 - mybatis的高端用法你会吗?

    前面了解了springboot + mybatis的单数据源和多数据源的集成已经使用,本篇文章来聊聊mybatis的高端用法吧 1.环境搭配 1.1 pom依赖 基于springboot 2.5.6, ...

  5. 【mybatis】mybatis if 标签判断字符串相等

    mybatis if 标签判断字符串相等 mybatis 映射文件中,if 标签判断字符串相等,两种方式: 因为 mybatis 映射文件,是使用的 ognl 表达式,所以在判断字符串 sex 变量是 ...

  6. spring Mybatis注解加判断

    spring Mybatis注解加判断 spring Mybatis注解加判断 一.用script标签包围,然后像xml语法一样书写 判断参数是否为空或者为null,没有参数则不执行该语句 @Sele ...

  7. mybatis if标签判断字符串是否相等

    mybatis 映射文件中,if标签判断字符串相等: 大概场景就是需要判断商品状态status(String变量)是否是字符串"on",一开始我的写法是: <if test= ...

  8. Mybatis中的foreach用法

    Mybatis中的foreach用法 目录 Mybatis中的foreach用法 元素属性 List对象集合查询 根据数组中的Id删除 update修改 元素属性 item: 集合中元素迭代时的别名, ...

  9. 关于mybatis中selectKey的用法

    在使用MyBatis插入数据进入数据库的时候会用到sequence序列来生成自增的id 这时可以使用selectKey就可以得到sequence的值,同时也会将值返回.不过对于不同的数据库有不同的操作 ...

最新文章

  1. 用看门狗定时器做计时器,计算程序耗时,超声波测距,FL2440
  2. 中关村创业大街上的“野心”青年:在这里不用拼爹
  3. Java编写抓取用户信息代码_[代码全屏查看]-一个基于JAVA的知乎爬虫,抓取知乎用户基本信息...
  4. oracle test传入参数,oracle存储过程,test(测试)时传自定义类型参数问题
  5. 不想打造物联网的制造型企业不是一家合格的百年老店
  6. 多校3 1008 Solve this interesting problem
  7. Mysql学习笔记(二):子查询与连接
  8. linux下virtualbox安装win7虚拟机无法调整分辨率
  9. 使用IDEA工具配置和运行vue项目(详细其中的坑)
  10. 没错,我是高端吃瓜玩家(搞懂摩斯密码)
  11. 服务器有无线网卡么,全面认识服务器网卡:理论篇
  12. 刑侦 技侦 警种
  13. JavaWeb-Servlet(上)
  14. 小程序接入「微信对话开放平台」,创建对话客服机器人
  15. Linux网络新技术基石:eBPF and XDP
  16. python2和python3的区别、转换及共存
  17. 买股票总是跌多涨少?买啥啥跌?试试“选股助手”吧
  18. 广州科源980tc数控系统说明书_广州数控GSK928TCa 车床数控系统 使用手册中文.pdf...
  19. ChatGPT - 提示词
  20. 【STM32】STM32简述中断的基础知识

热门文章

  1. 【数电试题】西电通卓模拟卷三
  2. How to Succeed in Graduate School
  3. 【软考系统架构设计师】2021年下系统架构师综合知识历年真题
  4. 守护生命之源,昇思MindSpore携手伙伴共同保护河流生态
  5. 面试官问我 ,try catch 应该在for循环里面还是外面?
  6. 禁止在计算机旁放水的英语,英剧_《yes or no 2》经典台词(七):放水灯_沪江英语...
  7. NI与东南大学就搭建5G预研毫米波技术联合实验室合作
  8. 《十万个为什么》碎碎念记录
  9. 漫画 | 自动化的测试没啥用,别浪费时间写了!
  10. 迪杰斯特拉算法与佛洛依德算法