Mybatis多参传递的四种解决方案

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Mybatis多参传递的四种解决方案相关的知识,希望对你有一定的参考价值。

Mybatis多参传递的四种解决方案

代码异常:org.apache.ibatis.binding.BindingException: Parameter ‘param‘ not found.

长时间没用持久层mybatis框架,今天还出了些异常。查了一下原来是传多参的问题,此问题以前也出现过,现在把解决方案记下以便利其他人及自己后期异常解决。

首先声明,“本人使用的是Dao接口的方式

方案一

Dao参数传递为VO,XML配置:parameterType="*.VO"

 

方案二

Dao参数传递为Map,XML配置:parameterType="hashMap"。当然Service层需将参数放入Map。

此方法我之前经常用,但并不是太直观,接口方法不能直接清楚传的参数是什么

 

方案三

Dao参数仍该怎么写就怎么写,但在XML配置中不写入parameterType

参数用#{0}、#{1}、#{*}依次占位

 

方案四

Dao层使用注解@Param,XML配置中不写入parameterType

e.g

    Integer getCountByNameAndPass(@Param("userName") String userName,@Param("password")String password);
 

 个人觉得相较而言,方案四最优

 

PS:方案一、二配置中不写入parameterType未进行尝试。读者可自行尝试。

以上是关于Mybatis多参传递的四种解决方案的主要内容,如果未能解决你的问题,请参考以下文章

[mybatis]缓存_一级缓存_一级缓存失效的四种情况

MyBatis:Mybatis 参数传递用法

Spring和MyBatis的四种结合方式

Mybatis中实体类属性和数据列之间映射的四种办法

springboot结合Mybatis和mybatis-plus实现分页查询的四种使用方式

MyBatis 中 @Param 注解的四种使用场景,最后一种经常被人忽略!