MyBatis支持的OGNL语法

作者: 疯狂小兵 | 2017-11-06 | 阅读
「编辑」 「本文源码」

个人新的博客地址:https://segmentfault.com/blog/followtry

Mybatis支持OGNL的语法

在sql映射语句中可以支持引入以下几种方式

示例SQL

<select id="getUserById" resultMap="BaseResultMap">
    select * from user
    <if test="id != null">
    <where>
            name = #{name}
            and id =${id}
            and id = ${user.id}
            and id = ${@@abs(-12345678)}
            and id = ${@@parseInt("654")}
            and id='${@cn.followtry.mybatis.bean.User@name()}'
            and id='${new cn.followtry.mybatis.bean.User()}'
            and id=${@cn.followtry.mybatis.bean.User@haha}
            and id='${@cn.followtry.mybatis.bean.User@arr[1]}'
            and id='${@cn.followtry.mybatis.bean.User@list[1]}'
            and id='${@cn.followtry.mybatis.bean.User@map.get("123")}'
            and id='${@cn.followtry.mybatis.bean.CodeTypeEnum@THREE.ordinal()}'
        </where>
        </if>
    limit 100
</select>
  • 变量 id =${id}
  • 属性 id = ${user.id}
  • 静态方法(public) id='${@cn.followtry.mybatis.bean.User@name()}'
  • 静态属性(public) id=${@cn.followtry.mybatis.bean.User@aaa}
  • 数组索引 id='${@cn.followtry.mybatis.bean.User@arr[1]}'
  • 集合 '${@cn.followtry.mybatis.bean.User@list[1]}'
  • Map id='${@cn.followtry.mybatis.bean.User@map.get("123")}' id='${@cn.followtry.mybatis.bean.User@map}'
  • Enum

    id=${@cn.followtry.mybatis.bean.CodeTypeEnum@THREE.ordinal()}

  • 构造方法 id='${new cn.followtry.mybatis.bean.User()}'

  • java.lang.Math方法 id = ${@@abs(-12345678)} 可以省略class的编写,方法的默认class是java.lang.Math

${}语法中通过两个@字符,前者定位到Java类,后者定位到类中的方法或属性 这里只列出的其中一部分,对于Mybatis支持的${}语法,可以参见OGNL语法手册。


版权声明:本文由 在 2017年11月06日发表。本文采用CC BY-NC-SA 4.0许可协议,非商业转载请注明出处,不得用于商业目的。
文章题目及链接:《MyBatis支持的OGNL语法》




  相关文章:

「游客及非Github用户留言」:

「Github登录用户留言」:

TOP