Mybatis动态SQL单一基础类型参数用if标签时,test中应该用 _parameter,如:
Map selectOne(String userName);
SELECT userName,userAge FROM user_table WHERE 1=1
<if test="userName !=null and userName !=''">
and userName = #{userName ,jdbcType=CHAR}
</if>
上面这种写法是错的。需要用到以下这种方式:
SELECT userName,userAge FROM user_table WHERE 1=1
<if test="_parameter !=null and _parameter !=''">
and userName = #{userName ,jdbcType=CHAR}
</if>
或者使用Map传值和@Param传值再或者不用if标签。