小技巧,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>
報錯圖檔
![](https://img.laitimes.com/img/_0nNw4CM6IyYiwiM6ICdiwiIyVGduV2QvwVe0lmdhJ3ZvwFM38CXlZHbvN3cpR2Lc1TPB10QGtWUCpEMJ9CXsxWam9CXwADNvwVZ6l2c052bm9CXUJDT1wkNhVzLcRnbvZ2LcZXUYpVd1kmYr50MZV3YyI2cKJDT29GRjBjUIF2LcRHelR3LcJzLctmch1mclRXY39zN3QTOwMTN3EjMyITM1EDMy8CX0Vmbu4GZzNmLn9Gbi1yZtl2Lc9CX6MHc0RHaiojIsJye.jpg)
解決方法,利用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>