Mybatis---配置文件完成增删改查(参数传递)

Mybatis 接口方法中可以接收各种各样的参数,如下:

  • 多个参数
  • 单个参数:单个参数又可以是如下类型
    • POJO 类型
    • Map 集合类型
    • Collection 集合类型
    • List 集合类型
    • Array 类型
    • 其他类型

 多个参数

如下面的代码,就是接收两个参数,而接收多个参数需要使用 @Param 注解,那么为什么要加该注解呢?这个问题要弄明白就必须来研究Mybatis 底层对于这些参数是如何处理的。

java User select(@Param("username") String username,@Param("password") String password);

我们在接口方法中定义多个参数,Mybatis 会将这些参数封装成 Map 集合对象,值就是参数值,而键在没有使用 @Param 注解时有以下命名规则:

  • 以 arg 开头 :第一个参数就叫 arg0,第二个参数就叫 arg1,以此类推。如:

map.put("arg0",参数值1);

map.put("arg1",参数值2);

  • 以 param 开头 : 第一个参数就叫 param1,第二个参数就叫 param2,依次类推。如:

map.put("param1",参数值1);

map.put("param2",参数值2);

在映射配合文件的SQL语句中使用用 arg 开头的和 param 书写,代码的可读性会变的特别差,此时可以使用 @Param 注解。

在接口方法参数上使用 @Param 注解,Mybatis 会将 arg 开头的键名替换为对应注解的属性值。

==结论:以后接口参数是多个时,在每个参数上都使用 @Param 注解。这样代码的可读性更高。==

 单个参数

  • POJO 类型

直接使用。要求 属性名 和 参数占位符名称 一致

  • Map 集合类型

直接使用。要求 map集合的键名 和 参数占位符名称 一致

  • Collection 集合类型

Mybatis 会将集合封装到 map 集合中,如下:

map.put("arg0",collection集合);

map.put("collection",collection集合;

==可以使用 @Param 注解替换map集合中默认的 arg 键名。==

  • List 集合类型

Mybatis 会将集合封装到 map 集合中,如下:

map.put("arg0",list集合);

map.put("collection",list集合);

map.put("list",list集合);

==可以使用 @Param 注解替换map集合中默认的 arg 键名。==

  • Array 类型

Mybatis 会将集合封装到 map 集合中,如下:

map.put("arg0",数组);

map.put("array",数组);

==可以使用 @Param 注解替换map集合中默认的 arg 键名。==

  • 其他类型

比如int类型,参数占位符名称 叫什么都可以。尽量做到见名知意

posted @   踏上星辰  阅读(55)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· DeepSeek在M芯片Mac上本地化部署
· 葡萄城 AI 搜索升级:DeepSeek 加持,客户体验更智能
点击右上角即可分享
微信分享提示