通常mybatis mapper接口的方法传递多个参数需要通过@Param注解指明参数匹配的sql参数,如下图:

或者是将参数封装成一个普通Java对象或一个散列表,直接将对象,散列表作为方法参数传入,通过对象的名或者散列表的key在mapper xml文件中与sql参数进行匹配。

对于使用jdk8与MyBatis3.4.1或以上的码农来说可能有福音了,下面介绍如何在传递多参数的时候省去@Param注解。

1:去掉mapper接口方法形参的Param注解

2:编写sql,sql占位符的参数名与函数形参名一致,这点非常重要。

3:maven指明编译后生成的class文件保留方法原生的参数名,而不是类似老版本javac那样编译成var1这样毫无语义的参数名。

<plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-compiler-plugin</artifactId><version>3.5.1</version><configuration><source>1.8</source><compilerArgument>-parameters</compilerArgument><target>1.8</target></configuration>
</plugin>

4:配置配置文件添加mybatis.configuration.use-actual-param-name=true 这个我使用的mybatis版本是默认开启的。

5:运行,结果如下:

mybatis具体参数匹配代码实现如下,总的优先级就是先查Param注解,没有Param注解就匹配参数名,再就是按参数先后顺序:

如果经过上述配置还是不成功,可以检查下生成的class文件的参数名是否被修改。

mybatis方法传入多参数相关推荐

  1. SSM项目调用Dao层查询方法传入正确参数但查不到数据

    2021年2月17日 2用户登录业务层调用Dao层的查询方法后返回的结果不是预期结果,预期结果为执行方法传入正确参数后查询得到查询结果封装的User对象的List集合,实际结果为传入正确参数执行方法后 ...

  2. Mybatis的增删改查操作(包含动态代理,动态SQL标签,缓存,#与$的使用传入多参数,获取自增id等基本操作)

    我是在idea中创建的项目 首先项目大致目录:其中UserMapperImpl和UserTest是多余的,当做纪念所以没有删除. User pojo类: package com.ljh.pojo;pu ...

  3. Mybatis中如何传入map参数呢?

    转自: Mybatis中如何传入map参数呢? 下文笔者讲述Mybatis的xml中使用map参数的方法分享,如下所示 实现思路:1.将参数类型设置为map2.在xml中直接使用map的键值获取参数即 ...

  4. mybatis的dao向mapper.xml传入多参数

    https://www.cnblogs.com/super-chao/p/7722411.html 1.如果两种不同类型的参数传入,parameterType可以不写,直接获取#{0},#{1}就可以 ...

  5. MyBatis注解模式取参数方法

    2019独角兽企业重金招聘Python工程师标准>>> @Select("select count(*) from (select id from patrol_host ...

  6. c++ 传入动态参数_一文了解Mybatis中动态SQL的实现

    一.动态SQL简介 MyBatis的强大特性之一便是它的动态 SQL.如果你有使用 JDBC 或其他类似框架的经验,你就能体会到根据不同条件拼接 SQL 语句有多么痛苦.拼接的时候要确保不能忘了必要的 ...

  7. java怎么传入参数到方法当中_java中方法传入参数时:值传递还是址传递?

    JAVA中的数据类型有两大类型: ① 基本数据类型:逻辑型(boolean).文本型(char).整数型(byte.short.int.long).浮点型(float.double) ② 引用数据类型 ...

  8. MyBatis多个接口参数报错:Available parameters are [0, 1, param1, param2], 及解决方法

    MyBatis多个接口参数报错:Available parameters are [0, 1, param1, param2], 及解决方法 参考文章: (1)MyBatis多个接口参数报错:Avai ...

  9. Mybatis 动态传入order by 参数排序无效

    Mybatis 动态传入order by 参数排序无效 一.背景 2019年4月14日,下午5点半,今天周末,但依旧加点调程序,补补丁.遇到这个坑,耗了我一会,我也很无奈啊,还好当时就解决了,特此记录 ...

最新文章

  1. vim插件的安装方式 -- vim注释插件和doxygen函数注释生成插件-ctrlp插件-tabular等号对齐 插件...
  2. 干货 | 携程基于Quasar协程的NIO实践
  3. C#使用RSA加密解密文件
  4. python爬取数据
  5. 解决Chrome调用IE弹出cmd黑窗口的问题
  6. js DOM——JS学习笔记2015-7-2(第73天)
  7. IBM T61 键盘没有反映。
  8. STM32F103:一.(3)IO方向
  9. 介质簇结构不正确_电动蝶阀的结构特征以及优点,值得看完
  10. iOS NSString的常用用法
  11. 广东工业大学通信原理复习笔记第七章数字信号的调制传输(思维导图)含链接和习题
  12. 仿花生日记淘宝客双端原生APP网站源码
  13. 家庭网关斐讯 K3 基础环境篇
  14. 旧iPhone手机钱包中公交卡 银行卡 转移到新手机iPhone11上
  15. 机器学习基础 2:矩阵乘法以及求导
  16. 关于如何职业规划和选择换工作
  17. 气候制度的转变和森林的丧失放大了亚马逊森林的火灾
  18. java deflate_[Java]关于Deflate、GZip格式网页的解压
  19. Python数据可视化——散点图
  20. 推荐关于PX4 ECL EKF方程推导的两篇“宝藏“文章

热门文章

  1. 奇怪吸引子---LuChen
  2. R语言学习笔记 (入门知识)
  3. [z]IE6各种不兼容问题
  4. JSP中getParameter和getAttribute区别
  5. Xib/Storyboard碰到不同版本的Xcode真是想死啊!
  6. php图片缩略图的方法,php生成图片缩略图的方法
  7. python查询mysql表名字动态日期_Python之路day11作业-MySQL表查询
  8. 点对点信道互连以太网实验_以太网防雷器通讯参数测试(二)——防雷器对高速链路影响的参数...
  9. cmd 220 ftp 远程主机关闭连接_针对一些弱口令漏洞的解决办法——设置远程管理登录的配置...
  10. down redis集群_Redis总结(十)redis集群-哨兵模式