MyBatis ---- MyBatis获取参数值的两种方式(重点)
创始人
2024-03-03 09:21:15
0

MyBatis ---- MyBatis获取参数值的两种方式(重点)

  • 1. 单个字面量类型的参数
  • 2. 多个字面量类型的参数
  • 3. map集合类型的参数
  • 4. 实体类类型的参数
  • 5. 使用@Param标识参数

MyBatis 获取参数值的两种方式:${}#{}

${}:本质就是字符串拼接
#{}:本质就是占位符赋值
${} 使用字符串拼接的方式拼接 sql,若为字符串类型或日期类型的字符进行赋值时,需要手动加单引号
#{} 使用占位符赋值的方式拼接 sql,此时为字符串类型或日期类型的字段进行赋值时,可以自动添加单引号

1. 单个字面量类型的参数

    /*** 根据用户名查询用户信息* @param username* @return*/User getUserByUsername(String username);
    

在这里插入图片描述

    

在这里插入图片描述

2. 多个字面量类型的参数

若 mapper 接口中的方法参数为多个时
此时 MyBatis 会自动将这些参数放在一个 map 集合中,以 arg0,arg1… 为键,以参数为值;以 param1,param2… 为键,以参数为值;因此只需要通过 ${}#{} 访问 map 集合的键就可以获取相对应的值,注意 ${} 需要手动加单引号

    /*** 检查用户是否登录成功* @param username* @param password* @return*/User checkLogin(String username, String password);
    

在这里插入图片描述

    

在这里插入图片描述

3. map集合类型的参数

若 mapper 接口中的方法需要的参数为多个时,此时可以手动创建 map 集合,将这些数据放在 map 中只需要通过 ${}#{} 访问 map 集合的键就可以获取相对应的值,注意 ${} 要手动加单引号

    /*** 使用map结合作为参数检查用户是否登录成功* @param map* @return*/User checkLoginByMap(Map map);
    

在这里插入图片描述

4. 实体类类型的参数

若 mapper 接口中的方法参数为实体类对象时
此时可以使用 ${}#{},通过访问实体类独享中的属性名获取属性值,注意 ${} 需要手动加单引号

    /*** 使用实体类插入数据* @param user* @return*/int insert(User user);
    insert into t_user values(null, #{username}, #{password}, #{age}, #{sex}, #{email});

在这里插入图片描述

5. 使用@Param标识参数

可以通过 @Param 注解标识 mapper 接口中的方法参数
此时,会将这些参数放在 map 集合中,以 @Param 注解的 value 属性值为键,以参数为值;以 param1,param2… 为键,以参数为值;只需要通过 ${}#{} 访问 map 集合就可以获取相应的值,注意 ${} 需要手动加单引号

    /*** 通过@Param注解验证用户登录* @param username* @param password* @return*/User checkLoginByParam(@Param("username") String username, @Param("password") String password);
    

在这里插入图片描述

相关内容

热门资讯

监控摄像头接入GB28181平... 流程简介将监控摄像头的视频在网站和APP中直播,要解决的几个问题是:1&...
Windows10添加群晖磁盘... 在使用群晖NAS时,我们需要通过本地映射的方式把NAS映射成本地的一块磁盘使用。 通过...
protocol buffer... 目录 目录 什么是protocol buffer 1.protobuf 1.1安装  1.2使用...
Fluent中创建监测点 1 概述某些仿真问题,需要创建监测点,用于获取空间定点的数据࿰...
educoder数据结构与算法...                                                   ...
MySQL下载和安装(Wind... 前言:刚换了一台电脑,里面所有东西都需要重新配置,习惯了所...
MFC文件操作  MFC提供了一个文件操作的基类CFile,这个类提供了一个没有缓存的二进制格式的磁盘...
在Word、WPS中插入AxM... 引言 我最近需要写一些文章,在排版时发现AxMath插入的公式竟然会导致行间距异常&#...
有效的括号 一、题目 给定一个只包括 '(',')','{','}'...
【Ctfer训练计划】——(三... 作者名:Demo不是emo  主页面链接:主页传送门 创作初心ÿ...