博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
MyBatis 在xml文件中处理大于号小于号的方法
阅读量:6718 次
发布时间:2019-06-25

本文共 1342 字,大约阅读时间需要 4 分钟。

  hot3.png

第一种方法:用转义字符(注:对大小写敏感! )

用了转义字符把>和<替换掉,然后就没有问题了。

SELECT * FROM test WHERE 1 = 1 AND start_date  &lt;= CURRENT_DATE AND end_date &gt;= CURRENT_DATE

附:XML转义字符  

显示结果 描述 实体名称 实体编号
  空格 &nbsp; &#160;
< 小于号 &lt; &#60;
> 大于号 &gt; &#62;
& 和号 &amp; &#38;
" 引号 &quot; &#34;
' 撇号  &apos; (IE不支持) &#39;

第二种方法:<![CDATA[ ]]>

因为这个是xml格式的,所以不允许出现类似“>”这样的字符,但是都可以使用<![CDATA[ ]]>符号进行说明,将此类符号不进行解析 ,如下:

UPDATE seckill SET number = number-1 WHERE seckill_id=#{seckillId} AND start_time #{killTime} AND end_time >= #{killTime} AND number > 0;

注意点:有动态语句(where,if)的情况,where,if 条件不能放在<![CDATA[ ]]>中,否则将导致无法识别动态判断部分,导致整个sql语句非法.应该缩小范围,只对有字符冲突部分进行合法性调整

错误的形式:以下where 放在<![CDATA[ ]]>中

                            createdate <= #{enddate}                               AND acctno LIKE '%'#{acctno}'%'                   ]]>    

正确的形式:

补充说明:like的以上两种写法,都是可以的

LIKE '%'#{acctno}'%'

LIKE CONCAT('%',#{acctno},'%')

转载于:https://my.oschina.net/360yg/blog/1592128

你可能感兴趣的文章
linux学习记录-------jdk安装配置
查看>>
查看dll依赖项
查看>>
ansible普通用户su切换问题
查看>>
2017.10.1
查看>>
洛谷——P1187 3D模型
查看>>
温度传感器,ds18b20
查看>>
ecshop为什么删不掉商品分类
查看>>
bzoj1941[Sdoi2010]Hide and Seek
查看>>
IT兄弟连 Java Web教程 经典面试题2
查看>>
利用setTimeoutc处理javascript ajax请求超时
查看>>
三、Java基础工具(1)_常用类——字符串
查看>>
文献管理与信息分析》第二讲作业
查看>>
java 遍历arrayList的四种方法
查看>>
根据不同的产品id获得不同的下拉选项 (option传多值)
查看>>
css3新增属性:多列(column)
查看>>
redis 主从配置和集群配置
查看>>
手机3D游戏开发:自定义Joystick的相关设置和脚本源码
查看>>
window.frames["detailFrm"].isSubmitting = true;//?起什么作用
查看>>
ASCII表
查看>>
idea之debug
查看>>