Caused by: org.xml.sax.SAXParseException: 元素内容必须由格式正确的字符数据或标记组成

启动项目报错: Caused by: org.xml.sax.SAXParseException

**重构微服务项目,为了提高开发效率使用mybatis-plus集成开发,今日再写mapper.xml中手写sql时,需要传递时间参数过滤列表数据,然后启动报错:根异常为 Caused by: org.xml.sax.SAXParseException: 元素内容必须由格式正确的字符数据或标记组成。**

在这里插入图片描述
然后下面会有一些模糊异常,比如bean注入失败问题。。。
关键报错在于mybatis-plus中,问题出现位置:
在这里插入图片描述
网上最早的一篇关于这个问题的解释是出现在2015年,而后都是清一色的一样一样的。。。

解决办法:
第一种: <![CDATA[ 查询字段 ]]>

	<select id="findList" resultType="Long">
        SELECT count(*)
        FROM healthy_daily d
        join infisa_text_storage s on s.id = d.text_id
        WHERE d.xl_patient_id = #{xlPatientId}
        AND d.deleted != 1
        <if test="startTime != '' and startTime!=null ">
            <![CDATA[ and  d.daily_time >= #{startTime} ]]>
        </if>
        <if test="endTime != '' and endTime!=null ">
            <![CDATA[ and  d.daily_time <= #{endTime} ]]>
        </if>
        ORDER BY d.daily_time DESC
       
    </select>

第二种:使用转义字符:

	<select id="findList" resultType="Long">
        SELECT count(*)
        FROM healthy_daily d
        join infisa_text_storage s on s.id = d.text_id
        WHERE d.xl_patient_id = #{xlPatientId}
        AND d.deleted != 1
        <if test="startTime != '' and startTime!=null ">
             and  d.daily_time  &gt;=  #{startTime} 
        </if>
        <if test="endTime != '' and endTime!=null ">
            and  d.daily_time  &lt;=  #{endTime}
        </if>
        ORDER BY d.daily_time DESC
       
    </select>
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值