在使用mybatis的时候,除了可以使用@param注解,mybatis中的param注解

  在使用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的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: