XML 的转移字符

HTML特殊字符实体详解
  1. 和           &      & amp;  
  2. 单 引号     '      & apos;  
  3. 双引 号     "      & quot;  
  4. 大于 号     >      & gt;  
  5. 小于 号     <      & lt;

转载于:https://www.cnblogs.com/maxjove/archive/2010/02/01/2356100.html

### MyBatis 中处理特殊字符转义方法 在编写 SQL 查询时,某些特殊字符可能会引起解析错误或意外行为。为了确保这些字符能够被正确识别并执行预期操作,在 MyBatis 的 XML 映射文件中可以通过特定的方式来进行转义。 对于 `>` 和 `<` 等比较运算以及不等于号 `<>` ,可以直接利用 CDATA 部分来避免这些问题的发生。CDATA 声明允许开发者将数据声明为字符数据,从而防止其中的内容被当作标记处理[^2]。具体来说: - 使用 `<![CDATA[` 开始标签和 `]]>` 结束标签之间的区域定义一段不会被解析器解释成 HTML 或者 XML 标签的文字串。 例如,当需要表达某个字段大于给定值时,可以这样书写条件语句: ```xml <if test="exampleField != null"> AND exampleColumn <![CDATA[ > ]]> #{exampleField} </if> ``` 同样的逻辑也适用于其他关系运算,像小于号、不大于/不少于等都可以采用相同模式进行编码[^4]。下面给出一个完整的例子展示如何在一个查询里同时应用多个这样的过滤条件: ```xml <select id="selectUsersWithConditions" parameterType="map" resultType="User"> SELECT * FROM users WHERE 1=1 <if test="minAge != null"> AND age <![CDATA[ >= ]]> #{minAge} </if> <if test="maxAge != null"> AND age <![CDATA[ <= ]]> #{maxAge} </if> <if test="status != 'active'"> AND status <![CDATA[ <> ]]> 'active' </if> </select> ``` 此外,除了上述提到的关系运算外,如果存在更复杂的字符串内容可能包含非法字符,则同样推荐使用这种方式将其包裹起来以保障安全性[^1]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值