<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.atguigu.dao.UserDao">
<select id="queryById" parameterType="int" resultType="com.atguigu.entity.UserEntity">
select * from user
<where>
<if test="_parameter!=null"> //由userId改为_parameter
id=#{userId}
</if>
</where>
</select>
</mapper>
重新启动运行
原因
在使用mybatis的动态sql进行单一条件的判断时,如果传入的sql的参数 不是实体或者map,如果把入参的参数写成入参(SQL查询条件)的名称,那么就会报org.apache.ibatis.reflection.ReflectionException: There is no getter for property named 'userId' in 'class java.lang.Integer'的错误,如果单个入参,使用if做判断的,mybatis内置了对单一对象的判断参数名称_parameter,所以如果单一条件下如果传入的不是map类型的或者实体类型的,那么就使用_parameter做为判断条件