Memory River

记忆河,记今日之事忆往昔之流

关于mybatis的@Param注解在xml中无法取值并报错的问题

Rickey  \  2019-02-27 09:15:43

前些天,有个见习Java程序员问了我一个问题,关于mybatis的,具体问题如下:

问题描述

在dao接口中使用@Param声明了几个参数,具体如图:

在mybatis的xml文件中使用方式如图:

这看起来好像没什么毛病,但是在系统运行执行SQL的时候,却报错了,报错信息如图:

这报错的信息是接口返回的,大家不用纠结太多,控制台错误和这一样的。看这报错的信息,是说mybatis找不到area1这个参数,因为接收到的参数是一个数组类型的。

解决方法

其实,这个错误是因为使用的@Param注解不是mybatis包的,而是使用了sping提供的@Param注解导致的。

正确的jar路径应该是:

import org.apache.ibatis.annotations.Param;

检查一下注解引用的jar包路径就可以解决这个问题了。

如果使用了sping提供的@Param注解,那么在mybatis中取值则是数组类型的取值方式,如上dao的注解是spring的,则xml中的取值应该是#{0, jabcType=INTERGER},这样取出来的数据就是第一个参数的值了。不过这样的做法很愚蠢,建议使用与持久层相对应的注解。使用mybatis作为持久层,就需要使用mybatis提供的注解。

地址: http://wchuf.com/article/adt/5ed6f9b3c3134da296718590a94ea526.html
声明: 本文为原创文章,版权归本站所有,欢迎分享本文,转载请保留出处!
  277         0         0
Rickey
人,可以无傲气,但不可以无傲骨。

YOU MIGHT ALSO LIKE

0 COMMENTS
想对博主说些什么?