在使用mybatis的时候,除了可以使用@param注解,mybatis中的param注解
目录
@Param注释总是无法报告参数错误。下面的@Param注释详细说明了如何使用它。1.@Param该注释用于解决接口方法有多个参数时的问题。2.可以修饰JavaBean对象、地图集合等。3.@Param参数实际上可以添加也可以不添加。4.使用@Param注释的好处
在00-1010 Spring Boot My Batis项目中,在mapper层传输多个参数,总是报告请求时无法获得参数。简直要疯了。我发誓xml层没问题,mapper层参数名也没问题。
@Param注解总是报取不到参数
百度一直让我查的。xml文件很长时间了,各种方法都试过了都无济于事。
最后检查来检查去发现自己@param注解包导错了,param注解应该用的是ibatis包的,而我导错了,如下:
我用的idea工具开发,直接alt+回车键快捷导入包,没太注意引错了,编译也没报错,坑。。。。
应该导入:import org.apache.ibatis.annotations.Param,伊巴蒂斯是mybatis的前身,mybatis就是从伊巴蒂斯发展而来的。
注意:
其实是个很小的问题。还有一点需要注意的是,在mapper层,如果只有一个参数不需要@param注释,如果有多个参数,必须是@param()注释,指明每个参数的参数名,否则会报错参数问题找不到,因为mybatis注释配置为使用ognl表达式,这样通过注释传递和提取多个参数的问题就可以正常了。
错误如下
@Param注解详细使用方法
xMapper.xml文件绑定参数混乱。
您需要在DAO方法参数前面添加@ param ("XXX "),以区分需要绑定到xxMapper.xml的不同参数
请注意,双引号中的值应该等于xxMapper.xml中# {}中的值,例如:
道方法:
public void list(@ Param(" ABC 1 ")String ABC 1,@ Param(" ABC 2 ")String ABC 2);XxMapper.xml:
值(#{abc1},#{abc2}
00-1010,例如:
public void list(@ Param(" Param ")User用户);XxMapper.xml:
其中username=# { Param . username } List getUser(@ Param(" Param ")Map Map);xxMapper.xml中的值:
(#{param.id},#{param.name},#{param.age},#{param.sex})
00-1010如果没有添加,则按顺序取出,如参数User user中用户名和密码的值都添加到#{userName}#{password}中。
但是,当DAO方法中的多个参数没有封装在Javabean中时,它们必须被添加。或者如果DAO方法参数中有多个JavaBean或set,则必须添加,例如:
@Param("user ")用户用户,@Param("example ")地图地图
00-1010方法参数名可能与xxMapper.xml不一致,但注意@Param( )中的值应与xxMapper.xml中# {}中的值一致,如:
@ param(" user 123 ")user user # { user 123 . username }以上为个人经验。希望大家能给我一个参考,支持盛行的IT。
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。