您的位置:首页 > 移动开发

JavaEE_Mybatis_Mybaits 的 Mapper.xml中不能出现<(小于)符号

2015-12-22 17:56 471 查看
小技巧,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>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: