Mybatis如何传递多个不同类型的参数

时间:2021-6-4 作者:qvyue

在项目中定义Mapper方法时,有时可能会传多个不同类型的参数,比如像下面这个Mapper方法,这个时候应该如何进行配置呢?

List findUserRole(Integer userId, String roleName);

方法一

不设置parameterType参数,直接使用#{index}来指定参数,索引从0开始。


  select * from user_role where user_id= #{0} and role_name= #{1}  

方法二

使用@Param注解进行指定,推荐使用。
Mapper方法

List findUserRole(@Param("userId") Integer userId, 
                          @Param("roleName") String roleName);

SQL配置文件


  select * from user_role where user_id= #{userId} and role_name= #{roleName}  

方法三

使用Map进行封装,Map中的key的值就是参数的名称。
Mapper方法

List findUserRole(HashMap paramMap);

SQL配置文件


  select * from user_role where user_id= #{userId} and role_name= #{roleName}  

方法四

使用List封装,在SQL配置文件中使用foreach遍历参数。
Mapper方法

List findUserRole(List paramList);

SQL配置文件


  select * from user_role where user_id in
    
    #{item}  
  

总结

方法三和方法四资源消耗远大于方法一和方法二,一般推荐使用方法一和方法二。

声明:本文内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:qvyue@qq.com 进行举报,并提供相关证据,工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。