关于Mybatis的@Param注解
起因
今天写了一个判断用户用户名密码是否正确的登录功能,在单元测试的时候发现报错,(org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.binding.BindingException: Parameter ‘user_name’ not found. Available parameters are [arg1, arg0, param1, param2])
原因是没有找到参数user_name的值,可是我明明在mapper.xml文件中传入了呀。
1 | <mapper namespace="com.xueziport.dao.UserDao"> |
后来查了资料才发现,如果需要传入多个参数需要在接口中加上@Param(values=”参数名”)参数(如果只有一个values参数则可以省略),告诉mybatis你传入的值的参数名称,这样好在mapper文件中调用。
1 | public User findUser(; String user_name, String user_password) |
最后发现就可以了
总结:
在mapper.xml中只有一个传入参数,可以不用@param;
如果传入多个的参数,需要使用@Paran注解;
如果是传入Map的集合,那么key就对应着参数的别名,可以不用加@param。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 鱼仔的博客!
评论