一、问题描述
mybatis框架下SQL查询时,mybatis会错误的将>与<认为是xml的分隔符,会导致如下类型的错误:
<select id="findAllMenu" resultMap="MenuVOResultMap">
SELECT mm.id as id,mm.title as title,mm.path as path,sm.id as sid,sm.title as stitle,sm.path as spath
from
(SELECT id,title,path,parent from sys_menus where <![CDATA[ parent >0 ]]> ) as sm
left join
(SELECT id,title,path,parent from sys_menus where <![CDATA[ parent <1 ]]>) mm
on sm.parent=mm.id
</select> Caused by: org.xml.sax.SAXParseException: 元素内容必须由格式正确的字符数据或标记组成。 二、解决办法
1、 <![CDATA[带有>=和 <=的语句括起来]]>
<select id="findAllMenu" resultMap="MenuVOResultMap">
SELECT mm.id as id,mm.title as title,mm.path as path,sm.id as sid,sm.title as stitle,sm.path as spath
from
(SELECT id,title,path,parent from sys_menus where <![CDATA[ parent >0 ]]> ) as sm
left join
(SELECT id,title,path,parent from sys_menus where <![CDATA[ parent <1 ]]>) mm
on sm.parent=mm.id
</select> 2、用<;代替小于号,用>;代替大于号
<select id="findAllMenu" resultMap="MenuVOResultMap">
SELECT mm.id as id,mm.title as title,mm.path as path,sm.id as sid,sm.title as stitle,sm.path as spath
from
(SELECT id,title,path,parent from sys_menus where parent > 0) as sm
left join
(SELECT id,title,path,parent from sys_menus where parent < 1 ) mm
on sm.parent=mm.id
</select>
本文标题:mybatis框架XML里的SQL中使用大于小于号的问题
本文链接:https://blog.quwenai.cn/post/8357.html
版权声明:本文不使用任何协议授权,您可以任何形式自由转载或使用。






还没有评论,来说两句吧...