isGreaterThan
<select id="getUserList" resultMap="user">
select * from user
<isGreaterThan prepend="and" property="id" compareValue="0">
where user_id = #userId#
</isGreaterThan>
order by createTime desc
</select>
上面的例子中,根据参数bean“id”属性的不同情况,可创建两个可能的语句。如果参数“id”大于0,将创建下面的语句:
select * from user where user_id = ? order by createTime desc
或者,如果“id”参数小于等于0,将创建下面的语句:
select * from user order by createTime desc
isEqual
<isEqual property="state" compareValue="0">
</isEqual>
或
<isEqual property="state" compareProperty="nextState">
</isEqual>
动态ORDER BY
<dynamic prepend="ORDER BY">
<isNotEmpty property="order">
$order$ $sortDirection$
</isNotEmpty>
</dynamic>
例子:
<select id="getNewsList" resultMap="newsResult" parameterClass="map">
select NEWS_ID,BLOCK_ID,NEWS_TITLE,NEWS_CONTENT,NEWS_SECONDTITLE,NEWS_SUMMARY,NEWS_AUTHOR,NEWS_SOURCE,NEWS_ANNEX,NEWS_TIME,NEWS_OPEN,NEWS_KEYWORDS,NEWS_APPROVE,ISTOP,BROWSENUM,NEWS_COMMENT,NEWS_REFUSE,NEWS_AUDITOR,lasteditor,prjid,prjname,wsflag,MEM_NAME,LASTEDITTIME,ISBLOCKPIC
from yc_news
where BLOCK_ID = #blockid#
<dynamic prepend="ORDER BY">
<isNotEmpty property="orderstr">
$orderstr$
</isNotEmpty>
</dynamic>
</select>
查询时间段
<isNotEmpty property="startTime" prepend=" and ">
f.Time >= #startTime#
</isNotEmpty>
<isNotEmpty property="endTime" prepend=" and ">
<![CDATA[
f.Time <= #endTime#
]]>
</isNotEmpty>