前言
在做项目的过程中,将项目中的数据库由原来链接我本地的数据库改为链接服务器的数据库,但是发现修改之后项目启动一直失败,经过查看日志才发现,原来数据库密码解析有问题。因为数据库的密码包含特殊符号,所以解析失败了。
解决方案一:使用CDATA
例如:
<if test="startTime != null" >
and l.CREATE_TIME >= #{startTime}
</if>
<if test="endTime != null" >
and l.CREATE_TIME < #{endTime}
</if>
这时这里的> <就会发生解析错误的问题,下面使我们的解决办法:
<if test="startTime != null" >
<![CDATA[
and l.CREATE_TIME >= #{startTime}
]]>
</if>
<if test="endTime != null" >
<![CDATA[
and l.CREATE_TIME < #{endTime}
]]>
</if>
解决方案二:使用转义字符
下面是五个在xml文件中定义好的实体:
例如:
<if test="startTime != null" >
and l.CREATE_TIME >= #{startTime}
</if>
<if test="endTime != null" >
and l.CREATE_TIME < #{endTime}
</if>
转义后:
<if test="startTime != null" >
and l.CREATE_TIME >= #{startTime}
</if>
<if test="endTime != null" >
and l.CREATE_TIME < #{endTime}
</if>
结语
其实这个小问题出现在配置数据库的文件中,当时没有联想到是xml文件的问题,一直在搜索数据库配置的相关问题,中间花费掉了不少时间。经过这个事情,我对这些配置文件的理解又深入了一步:其实他们的东西和mybatis的xml文件是一样的。