当前位置: 首页 > article >正文

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

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

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

1,多个参数

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

    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

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

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


http://www.kler.cn/a/418367.html

相关文章:

  • Graphy 是一款终极、易于使用、功能齐全的 FPS 计数器、统计监视器和调试器,适用于您的 Unity 项目。
  • Maya 中创建游戏角色的头发,并将其导出到 Unreal Engine 5
  • 【Maven】依赖冲突如何解决?
  • 生产环境中,nginx 最多可以代理多少台服务器,这个应该考虑哪些参数 ?怎么计算呢
  • React进阶面试题(四)
  • Vim操作
  • Vue 集成和使用 SQLite 的完整指东
  • SpringBoot开发——Spring Boot 3.3 高效批量插入万级数据的多种方案
  • 等保三级安全架构设计方案
  • Cent0S7 安装Redis
  • mybatis.mapper-locations=classpath:mapper/*.xml
  • 【Linux】Linux2.6内核进程调度队列与调度原理
  • 基于Java Springboot 家政服务管理系统
  • 【UE5 C++】判断两点连线是否穿过球体
  • Observability:如何在 Kubernetes pod 中轻松添加应用程序监控
  • k8s 架构详解
  • 虚拟列表遇上瀑布流布局
  • 基于Springboot开发的云野旅游平台
  • 机器学习与深度学习-2-Softmax回归从零开始实现
  • 模型 布鲁姆法则
  • 如何用一块香橙派Zero3打造你的HomeAssistant智能家居中心并实现远程管理
  • 华为机试HJ77 火车进站
  • 【docker】多阶段构建与基础构建,及企业案例展示
  • Vue 3 中实现页面特定功能控制
  • Ubuntu双系统20.04平稳升级至22.04
  • 代数拓扑学