Loading [MathJax]/jax/output/CommonHTML/config.js
部署DeepSeek模型,进群交流最in玩法!
立即加群
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >四、MyBatis获取参数值的两种方式(重点)

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

原创
作者头像
刘大猫
发布于 2025-03-05 12:37:47
发布于 2025-03-05 12:37:47
1020
举报
文章被收录于专栏:JAVA相关JAVA相关

@toc

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

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

${}的本质就是字符串拼接,#{}的本质就是占位符赋值

${}使用字符串拼接的方式拼接sql,若为字符串类型或日期类型的字段进行赋值时,需要手动加单引

号;但是#{}使用占位符赋值的方式拼接sql,此时为字符串类型或日期类型的字段进行赋值时,可以自

动添加单引号

4.1 单个字面量类型的参数

若mapper接口中的方法参数为单个的字面量类型

此时可以使用${}和#{}以任意的名称获取参数的值,注意${}需要手动加单引号

4.2 多个字面量类型的参数

若mapper接口中的方法参数为多个时

此时MyBatis会自动将这些参数放在一个map集合中,以arg0,arg1...为键,以参数为值;以

param1,param2...为键,以参数为值;因此只需要通过${}和#{}访问map集合的键就可以获取相对应的

值,注意${}需要手动加单引号

4.3 map集合类型的参数

若mapper接口中的方法需要的参数为多个时,此时可以手动创建map集合,将这些数据放在map中

只需要通过${}和#{}访问map集合的键就可以获取相对应的值,注意${}需要手动加单引号

4.4 实体类类型的参数

若mapper接口中的方法参数为实体类对象时

此时可以使用${}和#{},通过访问实体类对象中的属性名获取属性值,注意${}需要手动加单引号

4.5 使用@Param标识参数

可以通过@Param注解标识mapper接口中的方法参数

此时,会将这些参数放在map集合中,以@Param注解的value属性值为键,以参数为值;以

param1,param2...为键,以参数为值;只需要通过${}和#{}访问map集合的键就可以获取相对应的值,

注意${}需要手动加单引号

总结:

结论1:#和$进行选择的时候,优先选择#

结论2:(前面的5条了解即可)甭管接口传几个参数,最后只分2种情况,一种是实体类情况,另一种统一用@Params进行标识参数名称就可以,压根不用arg0、arg1、param1、param2等。

本人其他相关文章链接

1.一、MyBatis简介:MyBatis历史、MyBatis特性、和其它持久化层技术对比、Mybatis下载依赖包流程

2.二、搭建MyBatis采用xml方式,验证CRUD(增删改查操作)

3.三、MyBatis核心配置文件详解

4.四、MyBatis获取参数值的两种方式(重点)

5.五、MyBatis的增删改查模板(参数形式包括:String、对象、集合、数组、Map)

6.六、MyBatis特殊的SQL:模糊查询、动态设置表名、校验名称唯一性

7.七、MyBatis自定义映射resultMap

8.八、(了解即可)MyBatis懒加载(或者叫延迟加载)

9.九、MyBatis动态SQL

10.十、MyBatis的缓存

11.十一、MyBatis的逆向工程

12.十二、MyBatis分页插件

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
MyBatis获取参数值的两种方式
${}使用字符串拼接的方式拼接sql,若为字符串类型或日期类型的字段进行赋值时,需要手动加单 引 号;但是#{}使用占位符赋值的方式拼接sql,此时为字符串类型或日期类型的字段进行赋值时, 可以自 动添加单引号
一个风轻云淡
2022/11/13
4740
5. Mybatis获取参数值的两种方式
#{}:先编译 sql 语句,再给占位符传值,底层是 PreparedStatement 实现。可以防止 sql 注入,比较常用。
捞月亮的小北
2023/12/01
3510
5. Mybatis获取参数值的两种方式
【Mybatis】常见面试题:Mybatis获取参数值的两种方式?
若mapper接口中的方法参数为单个字面量时:两种都行,注意${} 要手动加单引号
小尘要自信
2023/10/10
2510
Mybatis(三)增删改查
在前面写到的一些数据库操作中,所有的 参数都是已知的,但是在实际情况中,这些id等信息都是未知的,所以说用别的符号代替它,使用的时候直接换成id即可。在获取参数时有两个方法,分别是${}和#{} ,它们的区别如下:
麻辣醉虾
2022/04/04
6950
Mybatis(三)增删改查
MyBatis 从入门到放弃 ( MyBatis基础总结 )
MyBatis最初是Apache的一个开源项目iBatis, 2010年6月这个项目由Apache Software Foundation迁移到了Google Code。随着开发团队转投Google Code旗下, iBatis3.x正式更名为MyBatis。代码于2013年11月迁移到Github。iBatis一词来源于“internet”和“abatis”的组合,是一个基于Java的持久层框架。 iBatis提供的持久层框架包括SQL Maps和Data Access Objects(DAO)。
愷龍
2022/11/12
9890
MyBatis 从入门到放弃 ( MyBatis基础总结 )
MyBatis的配置和简单使用
注:传入一个指定key的map集合也可以,在xxxxMapper.xml通过用map集合的key也可以获取到参数。
鱼找水需要时间
2023/02/16
2970
MyBatis的配置和简单使用
Mybatis学习笔记--[持续更新中]
MyBatis最初是Apache的一个开源项目iBatis, 2010年6月这个项目由Apache Software Foundation迁 移到了Google Code。随着开发团队转投Google Code旗下, iBatis3.x正式更名为MyBatis。代码于 2013年11月迁移到Github。
SerMs
2022/03/30
7100
Mybatis学习笔记--[持续更新中]
MyBatis
今天开始学习我自己总结的 Java-学习路线 中的《MyBatis》,小简从 0 开始学 Java 知识,并不定期更新所学笔记,期待一年后的蜕变吧!<有同样想法的小伙伴,可以联系我一起交流学习哦!>
小简
2023/01/30
1.7K0
mybatis接口方法参数传参解读
如果参数只有一个的话,#{} 里面的内容就随便写了。对于 ${} 来说,注意加单引号。
一个风轻云淡
2023/10/15
2930
mybatis接口方法参数传参解读
MyBatis获取参数值的方式(一)
使用#{param}占位符可以获取单个参数值,其中param表示参数的名称。例如:
堕落飞鸟
2023/05/15
5330
mybatisplus自定义拦截器_springboot自定义拦截器
通过拦截器可以拦截四大核心对象中的其中一个,我下文中拦截的是Executor核心对象,然后对这个核心对象的update方法进行了拦截,再结合反射,在每次更新的时候都动态的给sql加上一个更新人操作,在每次插入的时候都动态的给sql加上一个创建人操作。下文中的拦截器主要是在更新或者插入的时候,给sql语句多传递一个参数。 我们还可以通过拦截StatementHandler核心对象修改sql语句,还可以通过拦截其它两个核心对象达到某些目的。但是目前只掌握拦截Executor核心对象给sql语句动态的增加参数就行了。
全栈程序员站长
2022/09/30
5K0
mybatisplus自定义拦截器_springboot自定义拦截器
JavaWeb-MyBatis(下)
之前介绍了MyBatis的快速入门以及Mapper代理开发,作为一款优秀的持久层框架,就不得不探讨一下MyBatis实现的增删改查功能了,而这也是我们学习的重点和核心所在。这次通过b站黑马的品牌数据增删改查案例,来学习MyBatis实现的增删改查功能,内容如下。
reload
2024/03/09
2700
JavaWeb-MyBatis(下)
MyBatis详解
在mybatis-config.xml文件中,可以通过以下配置进行MyBatis事务管理:<transactionManager type="JDBC/MANAGED" />
CODER-V
2023/03/04
2K0
MyBatis详解
MyBatis--代理模式实现数据库增删改查
通过sqlSession的getMapper方法,传入DeptMapper接口的类对象获取DeptMapper的接口代理对象
aruba
2022/05/15
3800
MyBatis--代理模式实现数据库增删改查
Mybatis Mapper 接口源码解析
在使用 Mybatis 的时候,我们只需要写对应的接口,即dao层的Mapper接口,不用写实现类,Mybatis 就能根据接口中对应的方法名称找到 xml 文件中配置的对应SQL,方法的参数和 SQL 的参数一一对应,在 xml 里面的 SQL 中,我们可以通过 #{0},#{1},来绑定参数,也可以通过 #{arg0},#{arg1}来绑定参数,还可以通过方法中真正的参数名称如 name,age之类的进行绑定,此外还可通过 #{param1},#{param2}等来绑定,接下来看下 Mybatis的源码是如何实现的。
Java技术编程
2020/05/21
2.2K0
Java Mybatis基础知识总结
对象关系映射(Object Relational Mapping,简称ORM)是一种为了解决面向对象与关系数据库存在的互不匹配的现象的技术。 简单的说,ORM是通过使用描述对象和数据库之间映射的元数据,将java程序中的对象自动持久化到关系数据库中。当然反过来也是可以的,例如将数据库表当中的记录查询出来,然后映射为Java程序中的Java对象。
赵哥窟
2021/05/19
1.7K0
mybatis动态SQL常用语法总结
在 mybatis 的 xml 文件里写的 sql 语句实际用的是一门叫做 OGNL 的表达式语言,OGNL 全称 Object Graph Navigation Language 对象图导航语言,是常应用于 Java 中的一个开源的表达式语言(Expression Language),它被集成在 Spring、Mybatis、Struts2 等 Java 框架中,通过简单一致的表达式语法,可以存取对象的任意属性,调用对象的方法,遍历整个对象的结构图,实现类型转化等功能。
人人都是码农
2024/07/10
2300
一文带你快速搭建框架(最全MyBatis笔记)
log4j的配置文件名为log4j.xml,存放的位置是src/main/resources目录下:
用户10216580
2022/12/06
5270
MyBatis 详细教程
MyBatis 目录树 [c2a2a099f5bc4982851a21b14b713195.png] tb_user.sql ```sql create database mybatis; use mybatis; drop table if exists tb_user; create table tb_user( id int primary key auto_increment, username varchar(20), password varchar(20), gender cha
ruochen
2022/03/08
2.3K0
MyBatis 详细教程
_Mybatis分页查询——四种传参方式
分页查询时,Sql语句使用limit关键字,需要传入开始索引和每页条数两个参数。MyBatis的多参数处理有以下方式:
会洗碗的CV工程师
2023/11/21
5930
_Mybatis分页查询——四种传参方式
相关推荐
MyBatis获取参数值的两种方式
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档