MyBatis xml特殊字符处理
大约 2 分钟
MyBatis xml特殊字符处理
5中特殊字符
> 大于
< 小于
& &
" 双引号
' 单引号
当sql中有上面的字符的时候,需要特殊处理一下。
一
使用 <![CDATA[ ]]> 包起来。比如
<![CDATA[ >= ]]>
<![CDATA[ <= ]]>
二
使用转义序列替代
特殊字符 转义序列
< <
> >
& &
" "
' '
其他
我还遇到另外一种情况,就是xml中有个sql 大致是这样的:
select * from xxx where a::jsonb ?| array['a', 'b', 'c']
-- 场景是pgsql.
-- 这个sql是想查询 a这里中,包含了 a 或 b 或 c 3个元素任意一个的那些数据,其中a列存储的事json数组,类似 ["xxxx1","xxxx2","xxx3"]
-- sql中的 ?| 是一个操作符,而非参数
这种情况,即使使用 <![CDATA[ ]]>
把 ?|
包起来,mybatis仍然会解析为一个参数,导致执行异常。
解决办法就是在xml中 写成 ??|
,如下:
<select id="xxxx" resultType="com.xxxxx">
select * from xxxx where
<![CDATA[ a ??| ]]>
<foreach item="item" index="index" collection="list" open="array[" separator="," close="]">
#{item}
</foreach>
</select>
系统推荐
- JVM垃圾收集器
- KVM 虚拟机安装
- synchronized原理深度剖析
- Redis笔记
- Spring框架源码关键点
- KVM方式集群部署ES
- PasteImageIntoMarkdown插件开发
- MySQL三大日志
- ES杂项
- 前端axios下载csv文件乱码
- GitHub Workflow突然报错
- SpringCloud总体认识
- 随机毒鸡汤:一生败在太要脸,爱钱爱的不明显。