使用Map存储键值对,用于动态的拼接where条件后的 列和值
dao层接口:
public List<Map<String,Object>> getData(@Param("map")Map<String,Object> map);
xml文件:
<select id="getData" resultType="Map">
select * from t_user
<trim prefix="where" prefixOverrides="and">
<if test="map != null">
<foreach collection="map.entrySet()" index="key" item="value" >
and ${key}= #{value}
</foreach>
</if>
</trim>
</select>
列名使用 ${xxx}来获取,因为使用#{xxx}获取的话,会自动给列名加''号, 即 where 'usename' = '张三',导致查询结果为0
为了避免sql注入问题,列名的变量尽量在后端定义