有关 Mybatis 中使用el表达式问题

最近遇到一些 问题 就是mybatis中是否可用 使用 el的表达式,我原先同事很是否定 el表达式,但是 我在想 标签下可用使用的,为什么到mybatis中就不可以使用,难道 用了两套的规则,然后我就去 试验一波,后来发现 并不是不可以用 其实就是我们很少使用 el表达式 在 mybatis中,本能的反应不可能可用,但是 事实结果 是可用的。好了 下面总结一下 ,el表达式在在 mybatis的中的使用,应为mybatis 最终全部转化为 ognl。

1. mybatis中 对于字符串 相等的判断对于的操作符

<if test="username != null and 'hello' eq username"></if>
<if test="username != null and 'hello' == username"></if>
<if test="username != null and '' != username"></if> 
 <if test="username != null and ''  neq username"></if>
eq对应==
neq对应!=

其实这两个没什么差别。

2. 对应参数判断大小之类的

<if test='id != null and id > x'></if>
<if test='id != null and id gt x'></if>
gt对应>
gte对应>=
lt对应< (在条件判断的时候,test不能包含 '<' 字符)
lte对应<= (在条件判断的时候,test不能包含 '<' 字符)

3. 特定字符有问题,某业务需要

4. 判断list 是否为空

<if test="list != null and list.isEmpty()"></if> , 
<if test="list != null and list.size()>0"></if>

大体就是这样

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
MyBatisEL表达式(表达式语言)是一种可以用来在XML配置文件动态取值的语言。EL表达式可以通过`${}`来引用Java对象的属性或方法,从而实现动态取值的功能。常用的EL表达式包括: 1. `${paramName}`:可以用来获取请求参数的值,其paramName是请求参数的名称。 2. `${headerName}`:可以用来获取请求头的值,其headerName是请求头的名称。 3. `${sessionScope.attrName}`:可以用来获取会话(session)的属性值,其attrName是属性的名称。 4. `${applicationScope.attrName}`:可以用来获取应用程序(application)的属性值,其attrName是属性的名称。 5. `${requestScope.attrName}`:可以用来获取请求(request)的属性值,其attrName是属性的名称。 需要注意的是,在使用EL表达式时,需要确保被引用的对象已经存在或者被正确设置。同时,EL表达式也可以进行一些简单的运算和逻辑判断。 总结一下,MyBatis常用的EL表达式包括`${paramName}`、`${headerName}`、`${sessionScope.attrName}`、`${applicationScope.attrName}`和`${requestScope.attrName}`。这些表达式可以用来动态取值,方便在XML配置文件进行逻辑判断和属性获取。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [有关 Mybatis 使用el表达式问题](https://blog.csdn.net/qq_36423978/article/details/101675398)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] - *2* [EL表达式取值与类的get方法](https://blog.csdn.net/m0_51864047/article/details/121482709)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] - *3* [Java企业报表管理系统源码](https://download.csdn.net/download/m0_55416028/88269629)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值