MyBatis-Plus之eq(boolean condition, R column, Object val)的eq(false, ...)

可能用MyBatis-Plus不多的朋友突然使用时,可能对eq(boolean condition, R column, Object val) 的 eq(false, ...)和ne傻傻分不清楚,认为eq是sql等于(=)匹配,然后就想当让认为eq(false, ...)是不等于(!=)匹配,然后就出各种问题,其实我们点到源码里可以清晰看到eq(false, ...)的含义

1、eq(boolean condition, R column, Object val) 的 eq(false, ...)


可以看到 eq(R column, Object val) 方法的默认值是true,我们可以传false进去,继续往里边看



可以理解到condition 的含义如下:

  • 当 condition 参数为 true 时,表示启用该等于条件,即表示将 column 和 val 进行等于比较,该条件能够生效
  • 当 condition 参数为 false 时,表示禁用该等于条件,即不会将 column 和 val 进行等于比较,从而该等于条件不能生效,并不意着sql的 !=。
    因此,在 eq(false, ...) 的情况下,eq后的等于(=)表达式不能生效,而 eq(true, ...) 则eq后的等于(=)表达式能够生效

2、ne(R column, Object val)

ne其实就是not eq的缩写,意味着不匹配条件(!=),才是真正的sql中的 !=
而ne也是有 ne(boolean condition, R column, Object val) 方法,可以对 condition 参数传入false,意思也为不启用该ne(!=)表达式,不传的话默认值亦为true,表示该条件生效。

3、总结

在一般的编程实践中,通常来说,eq(false, ...)的语义并不是一种常见或标准的用法。原因如下:

  1. 通常情况下,eq 方法用于表示相等比较,而将其设置为 false 可能会引起歧义,因为大多数情况下并没有明确定义的方式来表示“不相等”。
  2. 不同的编程语言、库或框架对于 eq(false, ...) 的行为可能会有不同的解释和处理方式,这可能导致不同的结果,缺乏一致性和预测性。
  3. 在一些实现中,eq(false, ...)可能被简单地忽略,或者被解释成不起作用,因为它并不是常见的或标准的用法。
    因此,为了编写清晰、可维护的代码,最好避免使用不明确或不常见的语法,而是选择明确且常见的方式来表达逻辑条件,比如使用 ne(...) 来表示不相等比较。

本文作者:Journey&Flower

本文链接:https://www.cnblogs.com/JourneyOfFlower/p/17927644.html

版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。

posted @   Journey&Flower  阅读(1584)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· .NET10 - 预览版1新功能体验(一)
点击右上角即可分享
微信分享提示
评论
收藏
关注
推荐
深色
回顶
收起
  1. 1 404 Not Found REOL
404 Not Found - REOL
00:00 / 00:00
An audio error has occurred.

Fade away

Do over again

Fade away

Utai hajime no hitomojime

Itsumo mayotteru

Douse toritome no nai koto dakedo

Tsutawaranakya motto imi ga nai (Ooh-ooh, oh-oh-oh)

Doushitatte konna ni fukuzatsu nano ni

Kamikudaite yaranakya tsutawaranai

Hora kekkyoku kashi nanka dou datte ii

Boku no ongaku nanka kono yo ni nakutatte ii nda yo

Ii ndarou

Nee sou darou

Everybody don't know why

Everybody don't know much

Boku wa ki ni shinai, kimi wa kidzukanai

Doko ni mo mou inai inai

Everybody don't know why

Everybody don't know much

Wasureteiku, wasurerareteiku

We don't know, we don't know, no, no

Me no mae, hirogaru genjitsu sekai ga mata yuganda

Nando risetto shite mo

Boku wa boku igai no dareka ni wa umare kawarenai

Sonna no shitteru yo

Ki ni naru ano ko no uwasabanashi mo

Shinikaru hyouteki wa tsugi no sokuhou

Mahi shichatteru (Tteru) kokkara esukeepu (Keepu)

Tooku tooku made ikeru yo

Antei nante nai (Na-na-na-na)

Fuanteina sekai (Na-na-na-na)

Antei nante nai (Na-na-na-na)

Kitto ashita ni wa wasureru yo

Fade away

Do over again

Fade away

Souda sekai wa dokoka ga itsumo uso kusai

Kireigoto dake ja daijina hitotachi sura mamorenai

Kudaranai, bokura minna dokoka kurutteru mitai

Hontou no koto nanka zenbu kamisama mo shiranai

Kamisama mo shiranai (Woah, woah, woah, no, woah)

Kamisama mo shiranai (Woah, woah, woah, no, woah)

Kamisama mo shiranai, but

Kamisama mo shiranai (Woah, no, woah, no, woah)

Everybody don't know why

Everybody don't know much

Boku wa ki ni shinai, kimi wa kidzukanai

Doko ni mo mou inai inai

Everybody don't know why

Everybody don't know much

Wasureteiku, wasurerareteiku

We don't know, we don't know, oh, oh-oh-oh

Ahh, oh-oh-oh-oh

Woah, oh-oh-oh

Ooh, ooh, ooh, ooh-ooh-ooh-ooh