MyBatis中的大于等于、小于等于写法
作者:一叶飘零_sweeeet
MyBatis XML映射文件中处理大于等于和小于等于符号的两种方法:使用转义字符和CDATA块,转义字符更为常见,而CDATA块则提供了一种更易读的解决方案
在 MyBatis 的 XML 映射文件中,由于 XML 语法的限制,不能直接使用 < 和 > 符号(会被解析为 XML 标签),需要使用转义字符或 CDATA 块来表示大于等于(≥)和小于等于(≤)。
以下是常用的写法:
1. 使用转义字符(推荐)
xml
<!-- 大于等于:≥ -->
<if test="startTime != null">
AND create_time >= #{startTime}
</if>
<!-- 小于等于:≤ -->
<if test="endTime != null">
AND create_time <= #{endTime}
</if>对应的转义字符对照表:
>表示>(大于)<表示<(小于)>=表示>=(大于等于)<=表示<=(小于等于)
2. 使用 CDATA 块
如果觉得转义字符可读性差,可以用 CDATA 块包裹包含特殊符号的 SQL 片段:
xml
<if test="startTime != null">
<![CDATA[ AND create_time >= #{startTime} ]]>
</if>
<if test="endTime != null">
<![CDATA[ AND create_time <= #{endTime} ]]>
</if>CDATA 块中的内容会被 MyBatis 原样解析,不进行 XML 语法检查。
注意事项
- 在注解方式的 SQL 中(如
@Select),可以直接使用>=和<=,无需转义 - 动态 SQL 中使用时,注意结合
<if>标签做非空判断,避免出现null值导致的 SQL 错误
两种方式效果相同,根据团队编码规范选择即可,转义字符方式在多数项目中更常见。
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。
