Mybatis:接口方法中的参数传递

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

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

1,多个参数

  • UserMapper 接口中定义如下方法,在 username 参数前加上 @Param 注解

    java 复制代码
    User select(@Param("username") String username, String password);

    Mybatis 在封装 Map 集合时,键名就会变成如下:

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

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

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

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

  • UserMapper.xml 映射配置文件中定义SQL

    xml 复制代码
    <select id="select" resultType="user">
    	select *
        from tb_user
        where 
        	username=#{username}
        	and password=#{param2}
    </select>
  • 运行程序结果没有报错。而如果将 #{} 中的 username 还是写成 arg0

    肯定会报错~

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

2,单个参数

  • 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类型,参数占位符名称 叫什么都可以。尽量做到见名知意

声明:内容主要来源黑马程序员网上资源学习

相关推荐
阿维的博客日记6 小时前
Example 类全场景实战指南
java·mybatis
kakakahahahaha11 小时前
Windows笔记本重装系统的4种路径和风险边界
windows·电脑·笔记本电脑·内容运营·软件需求·重装系统
自动化监测Learner14 小时前
Windows 自带搜索太慢?Everything 安装与使用指南,全盘文件秒搜
windows·everything
天机玄正17 小时前
云运维高阶二:CLI 调用 API (白名单追随)
windows·云原生
您^_^17 小时前
DeepSeek-Harness v0.1.5-alpha.1更新后旧会话打不开?5 步抢救 8MB 会话照抄
人工智能·windows·个人开发·deepseek v4 pro·deepseekharness
正仪18 小时前
systemd 是什么?
linux·运维·windows
小溪学编程18 小时前
Java ListIterator 接口详解:双向遍历与列表修改的利器
java·开发语言·windows
2601_9623649719 小时前
没有 TPM2.0,还能用 Windows Hello 摄像头吗?
windows·安全·电脑
阿维的博客日记20 小时前
Example API指南2
java·mybatis
江湖人称菠萝包21 小时前
【Windows】《深入浅出Windows API程序设计:编程基础篇》笔记-Chapter9-对话框
windows·笔记