开发中Mybatis出现There is no getter for property named ‘XXX’ in 'class java.lang.String’的情况
- 原因:
Mybatis默认采用OGNL解析参数,所以会自动采用对象树的形式取 string.xxx 值,如果没在在方法中定义,则会抛异常报错 - 解决办法:
在MyBatis的dao接口类中的方法参数加上 @Parma 注解
dao层示例:
public User selectUser(@Param(“userName”) String name,@Param(“userpassword”) String password);
mapper.xml对应示例:
<select id=" selectUser" resultMap="BaseResultMap">
select * from user_user_t where user_name = #{userName,jdbcType=VARCHAR} and user_password=#{userPassword,jdbcType=VARCHAR}
</select>
注意:采用#{}的方式把@Param注解括号内的参数进行引用(括号内参数对应的是形参如 userName对应的是name);