當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的情況。