小技巧,Mybaits的配置文件不能出现<(小于)符号
示例:
错误代码
<select id="selectByNoticeCount" parameterType="cn._2vin.yannan.bean.Notice" resultType="int">
SELECT COUNT(*) FROM (
SELECT
<include refid="Base_Column_List" />
FROM notice
<where>
<if test="noticeContent != null and noticeContent != '' " >
AND notice_content LIKE '%${noticeContent }%'
</if>
<if test="startTime !=null and startTime !=''">
AND notice_time >= #{startTime }
</if>
<if test="endTime !=null and endTime !=''">
AND notice_time <= #{endTime }
</if>
</where>
ORDER BY notice_id
)AS n
</select>
错误提示
The content of elements must consist of well-formed character data or markup.
<if test="endTime !=null and endTime !=''">
AND notice_time <= #{endTime }
</if>
报错图片
解决方法,利用xml中唯一的CDATA,将这段配置sql 强制转换为字符串
正确修改后:
<select id="selectByNoticeCount" parameterType="cn._2vin.yannan.bean.Notice" resultType="int">
SELECT COUNT(*) FROM (
SELECT
<include refid="Base_Column_List" />
FROM notice
<where>
<if test="noticeContent != null and noticeContent != '' " >
AND notice_content LIKE '%${noticeContent }%'
</if>
<if test="startTime !=null and startTime !=''">
AND notice_time >= #{startTime }
</if>
<if test="endTime !=null and endTime !=''">
<![CDATA[AND notice_time <= #{endTime }]]>
</if>
</where>
ORDER BY notice_id
)AS n
</select>
重要片段:
<if test="endTime !=null and endTime !=''">
<![CDATA[AND notice_time <= #{endTime }]]>
</if>