当MyBatis参数为null时,可以使用以下方法解决:
<select id="selectUser" parameterType="java.lang.Integer" resultMap="userResultMap">
SELECT * FROM users WHERE id =
<if test="userId != null">
#{userId}
</if>
<if test="userId == null">
null
</if>
</select>
在上面的示例中,如果参数userId为null,则查询语句中的条件将为null。
public User getUser(Integer userId) {
if (userId == null) {
userId = 0; // 设置默认值
}
return userDao.getUser(userId);
}
在上面的示例中,如果userId为null,则将其设置为默认值0。然后,再调用MyBatis方法。
public User getUser(@Param("userId") Integer userId) {
return userDao.getUser(userId);
}
在上面的示例中,@Param注解指定了参数名称为"userId",确保与XML映射文件中的参数名称一致。这样可以避免参数为null的情况。