错误的sql
<select id="searchEcoInfoPaged" resultMap="cm">
select TOP #{rows} * from eco_info where ID in
(
SELECT top (#{rows}*#{page}) ID FROM eco_info WHERE 1=1
<foreach collection="fieldMap" index="key" item="item" open="" separator=" " close="">
<if test="item != null and item != ''">
AND ${key} LIKE '%'+#{item}+'%'
</if>
</foreach>
order by ID DESC
)
order by ID ASC
</select>
正确的sql
<select id="searchEcoInfoPaged" resultMap="cm">
select TOP ${rows} * from eco_info where ID in
(
SELECT top (#{rows}*#{page}) ID FROM eco_info WHERE 1=1
<foreach collection="fieldMap" index="key" item="item" open="" separator=" " close="">
<if test="item != null and item != ''">
AND ${key} LIKE '%'+#{item}+'%'
</if>
</foreach>
order by ID DESC
)
order by ID ASC
</select>
将第一个# 改为 $,具体原因有待研究。