记一次mybatis的坑

前几天代码突然之间报了一个问题,直接抛出异常

nested exception is org.apache.ibatis.binding.BindingException: Parameter 'userId' not found.

说一下我项目中使用的说mybatis作为持久化框架的。

出现了问题后,就赶快去解决,字面的含义是没有找到userId的属性,然后我想可能是实体类中没有这个属性,然后去看实体类是否有该属性,看了以后实体类中有这个属性,排除了这个错误;

然后又想是否是字段拼写错误,使用的是@Param注解进行传参的(注意@Param括号中的值是要和mapper.xml中的值一一对应的,否则是找不到的),然后看了一下,字段拼写正确,我也想我应该不会犯这么低级的错误;

例如我们的mapper文件中这样写到

User getUser(@Param(“userId”)String userId); 然后在mapper.xml中的查询语句中是要使用userId去匹配的,否则是会报错,找不到该属性。

然后又试一下一下,将注解去掉,重新导入一次,咦,正确了,好高兴。

然后看了一下确定了最后的错误的地方是在哪里,原来是导包的时候出现了问题。

原来在SpringBoot中@Param是有两个注解的,

一个是spring的org.springframework.data.repository.query.Param,

一个是mybatis的org.apache.ibatis.annotations.Param;

原文地址:https://www.cnblogs.com/0630sun/p/11456051.html