MyBatis-OGNL表达式

介绍

OGNL(Object-Graph Navigation Language)是一种强大的表达式语言,用于获取和设置Java对象图中的属性。在MyBatis中,OGNL常用于动态SQL构建,如条件判断、循环等。以下是关于OGNL表达式的整合信息,包括基本用法和一些常见的操作符:

基本语法

# 访问属性:
user.name:访问名为user的对象的name属性。

# 调用方法:
user.getName():调用user对象的getName方法。

# 使用索引:
users[0]:访问数组或列表users的第一个元素。

# 逻辑运算符:
与(AND):and  # 不是Java中的&&
或(OR):or    # 不是Java中的||
非(NOT):!not

# 算术运算符:
加法:+
减法:-
乘法:*
除法:/
取模:%

# 比较运算符:
等于:==
不等于:!=
大于:>
小于:<
大于等于:>=
小于等于:<=

# 特殊字符处理:
在XML配置文件中,由于<>会被解析为XML标签,因此需要使用相应的实体引用,如&lt;代替<&gt;代替>

动态SQL示例

假设有一个查询用户信息的需求,根据传入的参数动态生成SQL语句:

<select id="findUsers" resultType="User">
    SELECT * FROM users
    WHERE 1=1
    <if test="name != null and name != ''">
        AND name = #{name}
    </if>
    <if test="age != null and age > 0">
        AND age = #{age}
    </if>
    <if test="gender == 'M' or gender == 'F'">
        AND gender = #{gender}
    </if>
</select>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值