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

news2024/11/26 10:44:46
  • MyBatis获取参数值的两种方式:${}#{}
  • ${}的本质就是字符串拼接,#{}的本质就是占位符赋值
  • ${}使用字符串拼接的方式拼接sql,若为字符串类型或日期类型的字段进行赋值时,需要手动加单引号;但是#{}使用占位符赋值的方式拼接sql,此时为字符串类型或日期类型的字段进行赋值时,可以自动添加单引号

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

若mapper接口中的方法参数为单个的字面量类型
此时可以使用${}#{}以任意的名称获取参数的值,注意${}需要手动加单引号

例子

传参为整型

User findById(Long id);
 <select id="findById" resultType="User">
        select * from user where id=#{id}
 </select>

在这里插入图片描述

 <select id="findById" resultType="User">
        select * from user where id=${id}
 </select>

在这里插入图片描述
传参为String

<select id="findByName" resultType="User">
	select * from user where name=#{name}
</select>

在这里插入图片描述

<select id="findByName" resultType="User">
	select * from user where name='${name}'
</select>

在这里插入图片描述
小结:

  • #{}是占位符赋值
  • ${}是字符串拼接
  • ${}需要注意单引号问题
  • #{id}、#{name}${id}${name}中间的id和name只是代表赋值,如果传参只有一个的时候,sql语句中可以随便写例如#{aaa},但为了见名知意还是和传参的一样。如果加了@Param(“id”),sql语句中必须和里面的一致。
User findById(Long id);
 <select id="findById" resultType="User">
	select * from user where id=#{aaa}
 </select>
User findById(@Param("id") Long id);
 <select id="findById" resultType="User">
	select * from user where id=#{id}
 </select>

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

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

User checkLogin(String name,String password);
<select id="checkLogin" resultType="User">
	select * from user where name=#{name} and password=#{pasword}
</select>

报错!
正确写法:

<select id="checkLogin" resultType="User">
	select * from user where name=#{arg0} and password=#{arg1}
	<!--或者select * from user where name=#{param1} and password=#{param2}-->
</select>

3、map集合类型的参数

若mapper接口中的方法需要的参数为多个时,此时可以手动创建map集合,将这些数据放在map中只需要通过${}#{}访问map集合的键就可以获取相对应的值,注意${}需要手动加单引号
在这里插入图片描述
在这里插入图片描述
和上面方法一致,mybatis自动把数据放在map中,我们没有用;采用手动创建map集合把数据放在map中,自己设置键。#{}要和map中的键一致,根据自己设置的键访问。
在这里插入图片描述

4、实体类类型的参数

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

5、使用@Param标识参数

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

总结:

大体分两种使用:

  • @Param标识参数(其他集中都使用@Param,以@Param注解的value属性值进行访问)
  • 实体类类型的参数

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/978633.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

STM32屏幕计时器

目录 一、最终效果二、实现思想三、实现过程3.1 屏幕显示3.2 中断处理 一、最终效果 显示屏显示计时时间&#xff0c;格式为 00:00:00&#xff0c;依次为 时:分:秒&#xff0c;程序运行之后自动计时&#xff0c;当按下按键&#xff0c;计时清零&#xff0c;按下按键采用外部中…

用Qt写的机器视觉绘图工具

一个用QtGraphicsView写的机器视觉绘图工具&#xff0c;支持直线查找&#xff0c;圆拟合&#xff0c;卡尺工具&#xff0c;圆环查找等。底部GraphicsScene可以实时显示相机图像&#xff0c;工具获取图像后通过算法处理图像。 Project是基于Qt的例程项目qdraw改的。

任天堂开发全新独立VR设备,或为下一代主机?将提供混合现实体验

根据爆料人Nash Weedle在X平台上的发文&#xff0c;我们得知任天堂正在秘密开发一款全新的独立VR设备&#xff0c;该设备将拥有一块MicroLED屏幕&#xff0c;并且独立于任天堂传闻中的下一代主机。与此同时&#xff0c;谷歌也参与了这款VR产品的研发工作。 这一新的VR设备被设计…

微信怎么录屏聊天记录?这个方法请你收好

“微信怎么录屏聊天记录呀&#xff1f;和女朋友刚认识的时候&#xff0c;都是在微信上面聊天的&#xff0c;现在想把这些聊天记录都保存下来&#xff0c;觉得很有纪念意义&#xff0c;有人知道怎么录屏保存下来吗&#xff1f;” 微信作为一款广泛使用的社交工具&#xff0c;承…

三维模型OBJ格式轻量化的跨平台兼容性问题分析

三维模型OBJ格式轻量化的跨平台兼容性问题分析 三维模型的OBJ格式轻量化在跨平台兼容性方面具有重要意义&#xff0c;可以确保模型在不同平台和设备上的正确加载和渲染。本文将分析OBJ格式轻量化的跨平台兼容性技术&#xff0c;并探讨其在保证数据一致性、支持多种平台和工具以…

Briefings in Bioinformatics2021 | Bert-Protein+:基于Bert的抗菌肽识别

论文标题&#xff1a;A novel antibacterial peptide recognition algorithm based on BERT 论文地址&#xff1a;novel antibacterial peptide recognition algorithm based on BERT | Briefings in Bioinformatics | Oxford Academic 代码&#xff1a;https://github.com/B…

【BI看板】Superset时间过滤控件二次开发

有没有人发觉Superset时间过滤组件非常高级&#xff0c;&#x1f61f;但又有点复杂&#xff0c;没有选择时间区间的快捷方式。 Superset的时间过滤控件可以通过在代码中进行二次开发来进行定制。以下是一些可能有用的提示&#xff1a; 查找源代码&#xff1a;可以在Superset的源…

没有一颗美国芯片,还测试了6G技术,卫星手机代表中国再次领先

随着国产5G卫星手机的发布&#xff0c;关注中国手机的日本媒体已对这款手机进行拆解&#xff0c;拆解结果显示已没有一颗美国芯片&#xff0c;显示国产手机产业链取得了彻底的突破&#xff0c;从此即使美国不供应芯片&#xff0c;国产手机也能实现5G技术。 日本这几年对中国科技…

Codeforces Round 560 (Div 3)

Codeforces Round 560 (Div. 3) Dashboard - Codeforces Round 560 (Div. 3) - Codeforces A. Remainder&#xff08;模拟&#xff09; 思路&#xff1a;模拟取余操作 &#xff0c; 只需考虑数字的后 x 位变成要变成的数字即可。 #include<bits/stdc.h> using namespa…

java的一个catch语句捕获多个异常

说明 在java的异常处理中&#xff0c;如果几个异常的处理完全相同&#xff0c;那么可以考虑在一个catch语句中捕获。但要注意&#xff0c;用一个catch捕获的几个异常类中&#xff0c;一个类不能是另外一个的子类&#xff0c;否则会编译报错。因为如果有父子关系&#xff0c;那…

“Fatal error compiling: 无效的目标发行版: 11“的解决

"Fatal error compiling: 无效的目标发行版: 11"的解决 [ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.8.1:compile (default-compile) on project xxxxx: Fatal error compiling: 无效的目标发行版: 11 -> [Help 1] PS D:\…

第三方软件测试公司如何选择?2023国内软件测试机构排名

软件检测公司 随着互联网技术的快速发展&#xff0c;应用软件也如春笋般越来越多&#xff0c;软件测试成为了软件企业离不开的话题。但软件企业的精力大多投入在软件开发上&#xff0c;因此要想更好更高效的完成软件测试&#xff0c;企业一般会将软件测试交付给外包公司完成。…

基于改进人工蜂群算法的 K 均值聚类算法(Matlab代码实现)

&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻辑清晰&#xff0c;为了方便读者。 ⛳️座右铭&a…

ModaHub魔搭社区专访百度智能云李莅:什么样的企业适合什么类型的向量数据库?

ModaHub魔搭社区:向量数据库会像传统数据库一样面临着选型问题吗?您能介绍下,什么样的企业适合什么类型的向量数据库吗?是单机版的还是插件版的,还是企业级的? 李莅的观点非常明确,他认为在选型的时候,首先要考虑的是需求。如果业务量级不是特别大,而且有成本方面的考…

背书方法--记忆宫殿

项目进度管理的工具 记忆宫殿或场景法&#xff1a;果树抽水&#xff08;流程是&#xff1a;果树的果子&#xff0c;水池的水&#xff0c;抽水机的水&#xff09;&#xff1a;想象一下你家附近有个巨大的果树&#xff0c;人们为了保护它&#xff0c;修建了个池子&#xff0c;昨…

IDEA中的“Deployment“ 将项目直接部署到服务器上

ntelliJ IDEA中的"Deployment"工具栏是一个方便的工具&#xff0c;用于将你的项目直接部署到服务器上。这个工具栏提供了三种部署的方式&#xff1a; 1.Web Server在本地电脑上&#xff0c;并且服务器运行目录也在项目目录下。 2.Web Server在本地电脑上&#xff0c;…

JWT一篇通

JWT 是什么&#xff1f; JWT&#xff08;JSON Web Token&#xff09;是一种开放的标准&#xff0c;标准的编号是RFC7591。用于在不同实体之间安全地传输信息。它是基于 JSON 编码的令牌。 JWT 的组成 JWT由三个部分组成&#xff1a;头部&#xff08;Header&#xff09;、载荷…

从C++98到C++26,经历了什么?

作为一名程序员&#xff0c;2023年最应该关注的话题就是C的标准更新。 C标准遵循3年开发周期&#xff0c;并以发布年份命名。C在临发布的一年前会进入“功能冻结期&#xff08;feature freeze&#xff09;”&#xff0c;即版本开发进入半稳定状态&#xff0c;不再添加重大功能及…

【C语言】入门——指针

目录 ​编辑 1.指针是什么 2.指针类型和指针运算 2.1指针-整数 2.2指针-指针 2.3指针的关系运算 3.野指针 3.1野指针成因 &#x1f44d;指针未初始化&#xff1a; &#x1f44d;指针越界访问&#xff1a; &#x1f44d;指针指向空间释放&#xff1a; 3.2如何规避野指针 …

PDF转Word的方法分享与注意事项。

PDF和Word是两种常用的文档格式&#xff0c;它们各有优点&#xff0c;适用于不同的场景。然而&#xff0c;有时候我们需要将PDF转换为Word&#xff0c;以便更好地进行编辑和排版。本文将介绍几种常用的PDF转Word的方法&#xff0c;并分享一些注意事项。 一、PDF转Word的方法 使…