Mybatis:There is no getter for property named 'xxx' in 'class java.lang.Integer/String...'

最近在回顾之前的后台项目时遇到很多奇奇怪怪的bug,其中一个bug就纠缠了我两天[○・`Д´・ ○],TM差点没被整晕。就是下面这个错误!!!

org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.reflection.ReflectionException: There is no getter for property named 'user_id' in 'class java.lang.Integer'
	org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:77)
	org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:446)
	com.sun.proxy.$Proxy14.selectOne(Unknown Source)
	org.mybatis.spring.SqlSessionTemplate.selectOne(SqlSessionTemplate.java:166)
	org.apache.ibatis.binding.MapperMethod.execute(MapperMethod.java:82)
	org.apache.ibatis.binding.MapperProxy.invoke(MapperProxy.java:53)
	com.sun.proxy.$Proxy15.selectUser(Unknown Source)
	jsoupdemo.service.impl.UserServiceImpl.selectUser(UserServiceImpl.java:20)
	sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)

明明以前的项目跑得好好的,复原一下就不行了
别人遇到的问题大多是:

对应的实体看看有没有对应的属性和对应的SET和GET方法!我这里是缺少对应的属性,也根本没有对应的SET和GET方法!
不过需要注意的是:在MyBatis映射文件中用"#"和$ 传递参数,其中#是以占位符的形式来传递对应变量的参数值的,框架会对传入的参数做预编译的动作,用$ 时会将传入的变量的参数值原样的传递过去,并且用$传递参数的时候需要有对应的GET方法,在MyBatis的映射文件中如果用某个变量传递传递参数,这个变量必须存在于对应的模型中,并且有对应的GET方法!此点常常引起莫名的异常问题,要多加注意!

或者mapper.xml中${}的参数名和实体类中对应的变量名不符也会出现no getter的错误

然而?然而??然鹅!!!

在这里插入图片描述

<?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="jsoupdemo.mapper.IUserDAO">
    <select id="selectUser" resultType="User" parameterType="int">
        SELECT * FROM User WHERE user_id = ${user_id}
    </select>
</mapper>

在这里插入图片描述
请问这位user_id和xml中的user_id有啥不同????试来试去死活就是不行

最终死马当作活马医用了个在Dao层指定Param的方法(我指我自己)

public interface IUserDAO {
    User selectUser(@Param("user_id") int user_id);
}

成功了???!!!
奉劝遇到这个问题的各位什么法子都得试试,因为你根本不知道bug会在什么时候给你怀疑人生的一击!!!

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值