在mapper.xml文件中转义字符的问题

本文探讨了在MyBatis的mapper.xml文件中处理转义字符的问题,特别是在比较日期字符串时。提到大于号和小于号可以直接用于字符串比较,而不需要转换为ASCII值。同时,介绍了如何使用CDATA来处理特殊字符,如`<=`和`>=`。此外,还讨论了字符串等于条件的不同写法以及非空条件的判断,包括如何利用工具类进行更复杂的判断,如数组或集合的非空检查。
摘要由CSDN通过智能技术生成

mybatis的转义字符

关于转义字符

and CREATEDATE >=#{startDate} 大于开始时间
and CREATEDATE <=#{endDate} 小于结束时间

三个日期字段存入数据库都是字符串,不是date型,xml中>,<不能被正确解析,需要XML转义字符

有一点,虽然都是字符串但是并不需要转为ascii码值来比较大小,我之前用了ASCII(CREATEDATE )与ASCII(#{startDate} )作比较,并不起作用。

但是两个字符串在这里可以用大于号和小于号直接比较大小。不知道日期格式可不可以直接比较,以后试试,待续。

字符转义的相关说明

请添加图片描述
在mapper.xml文件中,在多个if中不需要使用and
例如:

//下面这两个是说明大于等于开始时间并且小于等于结束时间

<if test="operationTimeOpen!=null "> and OPERATIONTIMEOPEN &gt;=#{operationTimeOpen}</if>
<if test="operationTimeEnd!=null "> and OPERATIONTIMEEND &lt;=#{operationTimeEnd}</if>

<if test=' testString != null and testString == "A" '> AND 表字段 = #{testString} </if>

详细代码如下

 <select id="getTRbstAttenBaseCount" resultType="java.lang.Long">

        SELECT COUNT(1)
        FROM `t_rbst_atten_base`
        <where>

            <if test="tableName!=null and tableName!=''">`atten_name` LIKE CONCAT('%',#{tableName},'%')</if>
            <if test="month!=null and month!=''">AND `atten_month` = #{month}</if>
            <if test="operator!=null and operator!=''">AND `operat
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值