mybatis的 <if>标签只能判断 Map 或者 javabean 里的属性 ,
如果是单独一个参数(不是map或者javabean类型),需要改成_parameter:
<if test="_parameter!=null">
and sid=#{sid}
</if>
如果参数是一个map,且map没有用@param注解修饰,直接用#{key}的形式就可以
如果用了@param修饰,则必须为#{map.key}的形式
接口:
public List<Map<String,Object>> getNews(Map<String,Object> map);
xml:
<select id="getNews" resultType="Map" parameterType="Map">
select id,cgbh,cgrmc,cgrlxr,lxdh,zbgys,zbje,cgjbqk,tsdh,bt,
DATE_FORMAT(createtime,'%Y-%m-%d') createtime,publictime,zt,xwlb_mc gglbmc
from
t_news a left join t_news_lb b
on a.gglbdm = b.xwlb_dm
<if test="gglbdm != null and gglbdm != '' ">
where gglbdm = #{gglbdm}
</if>
order by
createtime desc