日期:2014-05-17  浏览次数:20723 次

缺少表达式SQLMAP
我想在用模糊查询查询东西,但老是出现缺少表达式,SQLMAP中代码如下:
<select id="newsSsou" parameterClass="jf.bean.empBean" resultClass="jf.bean.empBean">
  select n.newsno as newsNo,
  n.title as title,
  n.newsdate as newsDate,
  n.note as note
  from jfnews n 
  where
  <dynamic>
  <isNotEmpty property="startDate">
  <![CDATA[
  n.newsdate >= #startDate#
  ]]>
  </isNotEmpty>
  <isNotEmpty prepend="AND" property="endDate">
  <![CDATA[
  n.newsdate <= #endDate#
  ]]>
  </isNotEmpty>
  <isNotEmpty prepend="AND" property="title">
  n.title like '%$title$%'
  </isNotEmpty>
   
  </dynamic>
去掉
<isNotEmpty prepend="AND" property="title">
  n.title like '%$title$%'
  </isNotEmpty>
这个是可以运行的,但加上就报缺少表达式了,我看了好多边,SQL语句没写错啊,有谁能帮我看看,谢谢了

------解决方案--------------------
你的条件之间没有and连接,如果你的title和 startDate、 endDate都不为空,你得到的SQL语句是错的。
你可以在where 后面加个1=1 然后< isNotEmpty> 标签里面的子句前加and
------解决方案--------------------
'%'||#title#||'%' 试试