<!--分页查询-->
<select parameterType="java.util.Map" id="findList" resultType="Map">
SELECT
*
FROM
XXXXXXX
<trim prefix="WHERE" prefixOverrides="AND">
<if test="map.xxx != null and map.xxx != '' ">AND XXX=#{map.xxx }</if>
</trim>
</select>
一般是这样的写法
如果前台传固定的值去判断,比如给1的话
则《if》标签中要改成这样,单双引号位子互换
<!--分页查询-->
<select parameterType="java.util.Map" id="findList" resultType="Map">
SELECT
*
FROM
XXXXXXX
<trim prefix="WHERE" prefixOverrides="AND">
<if test='map.xxx == "1" '>AND XXX=#{map.xxx}</if>
</trim>
</select>
mybatis是用OGNL表达式来解析的,在OGNL的表达式中,’1’会被解析成字符,java是强类型的,char 和 一个string 会导致不等,所以if标签中的sql不会被解析。
总结下使用方法:单个的字符要写到双引号里面或者使用.toString()才行!
<if test= "type == '0'.toString() ">
and xx = #{xx}
</if>
—作者:鲨鱼辣椒灬
来源:CSDN