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

@[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分页插件

重要信息

相关推荐
Blossom.11819 分钟前
基于深度学习的医学图像分析:使用DeepLabv3+实现医学图像分割
人工智能·python·深度学习·yolo·目标检测·机器学习·迁移学习
808&Heartbreak*23 分钟前
CNN实战项目
人工智能·神经网络·cnn
大公产经晚间消息27 分钟前
网易云音乐硬刚腾讯系!起诉SM娱乐滥用市场支配地位
大数据·人工智能·娱乐
李子圆圆31 分钟前
电力设施通道防外破防异物实时监控预警装置的核心功能是什么
人工智能·语音识别
mit6.82437 分钟前
[Agent开发平台] API网关 | 业务领域 | DTO格式 | 分页令牌
人工智能·golang·状态模式
黎燃1 小时前
工业机器人中的计算机视觉质检系统:从算法到产线落地的全流程指南
人工智能
vjmap1 小时前
MCP协议:CAD地图应用的AI智能化解决方案(唯杰地图MCP)
前端·人工智能·gis
厄罗萌多1 小时前
OpenCV学习 day3
opencv·学习·计算机视觉
小指纹1 小时前
图论-最短路Dijkstra算法
数据结构·c++·算法·深度优先·图论
一尘之中2 小时前
阿难尊者的末法时代“系统架构”之问
人工智能·系统架构·ai写作