How to solve the error when the MyBatis parameter is null?

You can solve the issue when the MyBatis parameter is null by using the following method:

  1. Verify if the parameters in the XML mapping file are correct. Ensure that the parameter names match those in the Java code.
  2. Check if the parameter is null in the mapping file using an if statement, and execute the necessary operation accordingly. For example:
<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>

In the example above, if the parameter userId is null, the condition in the query statement will also be null.

  1. Before calling MyBatis methods using Java code, check if the parameters are null and provide default values if necessary. For example:
public User getUser(Integer userId) {
  if (userId == null) {
    userId = 0; // 设置默认值
  }
  return userDao.getUser(userId);
}

In the example above, if userId is null, set it to the default value of 0 before calling the MyBatis method.

  1. Specify parameter names using the @Param annotation. For example:
public User getUser(@Param("userId") Integer userId) {
  return userDao.getUser(userId);
}

In the example above, the @Param annotation specifies the parameter name as “userId”, ensuring it matches the parameter name in the XML mapping file. This helps prevent the parameter from being null.

bannerAds