前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >ognl表达式-OGNL 表达式

ognl表达式-OGNL 表达式

作者头像
囍楽云
发布2022-12-26 14:34:47
4550
发布2022-12-26 14:34:47
举报
文章被收录于专栏:囍楽云博客

OGNL 表达式

  1. 前言

   的动态 SQL 广泛应用到了OGNL 表达式,OGNL 表达式可以灵活的组装 SQL 语句,从而完成更多的功能。OGNL 易学易用,与 Java 代码几乎一致ognl表达式,本小节我们将系统的介绍 OGNL 表达式在 中的使用。

  2. 定义

  慕课解释:OGNL 全称 Object-Graph ,是 Java 中的一个开源的表达式语言,用于访问对象数据。

  3. 介绍

  3.1 实例

  OGNL 最常用于 if 标签中,用于判断条件是否满足,如下:

代码语言:javascript
复制
AND age = #{age}

  if 标签的 test 属性就是个典型的 OGNL 表达式。age != null表示当 age 不为 null 的时候 if 成立,则动态的向 SQL 中插入标签内的 SQL 代码段。

  3.2 常见的 OGNL 表达式

  在 中常见的 OGNL 表达式如下:

e1 or e2:或关系e1 and e2:与关系e1 == e2 或者 e1 eq e2:相等e1 != e2 或者 e1 neq e2:不等e1 lt e2 ;e1 < e2;e1 gt e2;e1 > e2;e1 lte e2;e1 = e2:比较关系e1 + e2;e1 - e2;e1 * e2;e1 / e2;e1 % e2:运算关系!e 或者 not e:非,取反e.method(args):调用对象方法e.:访问属性值e1e2:访问数组、链表(e2 为序号)或者 Map(e2 为键值)

  其中 1~4 以及 9~10 都是特别常用的几种情况,而其它的情况不利于 SQL 的维护,因此并不常见。

  TIPS: 提示, 如果你熟悉 Python 的话,会发现 OGNL 表达式完全就是在写 Python。

  4. 实践

  下面我们就来以实例来看一看 OGNL 表达式。

  有一个名为 pedro 的 User 对象ognl表达式,如下:

代码语言:javascript
复制
`User pedro = new User();
pedro.setUsername("pedro");
pedro.setTags(Arrays.asList("admin", "man"));
pedro.setAge(23);
`

  4.1 访问属性

  访问用户的 属性,OGNL 表达式为pedro.,结果为:

代码语言:javascript
复制
`# pedro.username
pedro
`

  4.2 访问列表

  访问用户的第一个标签,OGNL 表达式为pedro.tags0,结果为:

代码语言:javascript
复制
admin

  4.3 比较

  比较用户标签长度是否大于 1,OGNL 表达式为pedro.tags0,结果为:

代码语言:javascript
复制
`# pedro.tags.size > 1
true
`

  4.4 运算

  用户年龄加上一个整数 22,OGNL 表达式为pedro.age + 22,结果为:

代码语言:javascript
复制
`# pedro.age + 22
45
`

  4.5 方法调用

  将用户年龄全部大写,OGNL 表达式为pedro..,结果为:

代码语言:javascript
复制
`# pedro.username.toUpperCase
PEDRO
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档