【Mybatis】映射文件中获取单个参数和多个参数的写法

xml的映射文件中获取接口方法中传来的参数是直接用#{}的方式来获取的

那么接下来,我们就具体来说一下获取参数里边的各种规则和用法

1.单个参数,比如上面的getOneUser,只有一个id值作为参数

Mybatis对于只有一个参数的情况下,不会做任何处理,其实在getOneUser方法中,我们传递过来一个id值作为参数,xml文件中我们用#{id}来接收,因为只有一个参数实质上#{}里可以是任何字符串都可以,当然为了对应我们建议就用id。

2.多个参数的情况下,Mybatis会将参数封装为一个Map对象,#{}其实内部是从这个Map对象中获取数值,所以#{}里就不能像上面一个参数一样写任意字符串都可以了,可以有两种写法一种是:参数1对应param1,参数2对应param2.....另一种写法:参数1对应索引arg0,参数2对应索引arg1.......

测试

当然这种写法,没有和接口方法中的名字对应起来,不爽!所以我们可以在接口方法中做点事情:加上一个@param(value)这样的注解,就可改变封装的map对象的key值,就可以实现接口方法里的参数名和xml文件内接收参数名对应一致了:

面对多个参数传递的问题,我们还有一种搞法,将多个参数值封装为一个POJO对象,直接传递对象过来就像上面的 addUser方法一样,在xml文件里直接用#{POJO的属性名称}的形式来获取传过来的值,当然你说我要查询的数据不是我们model包里的任何一个POJO呢?要用这种方式,没有对应的POJO,我们可以自己构造一个与参数对应的封装对象,这个我们后面写分页查询的时候用的Pager类就是一个典型: 

最后还有一种做法:既然面对多个参数传递的时候,Mybatis会把参数封装成Map对象,那么索性我干脆就传入一个Map对象也是可以的,xml文件里获取参数值就用#{Map的key值}: 

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

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

相关文章

系统思考—决策

风险来自于你不知道你在做什么。——沃伦巴菲特 今天和一个合作伙伴的创始人交流,她提出了一个引人深思的问题:“策略性陪伴和战略复盘,什么原因不由客户自己来做?”这个问题让我深入思考了第三方策略性陪伴顾问的独特价值和重要…

B3663 [语言月赛202209] Luogu Academic

[语言月赛202209] Luogu Academic 题目描述 七海在 LA 群中游走,获得了一个由英文小写字符组成的字符串 S S S。 七海想要知道,子串 luogu 在其中出现了多少次。 提示: 一个字符串中,任意连续的字符构成的子字符串称为子串。…

06 Linux编程-网络编程

1、为什么需要网络编程 管道、消息队列、共享内存、信号、信号量的IPC都是依赖于系统内核的,因此这些方式无法进行多机间(例如:linux与android、linux与单片机等)的通信。 网络编程是基于网络的,因此需要网络地…

Mac-CEP插件-安装脚本-bash-Shell基础语法

文章目录 1.安装脚本2.变量命名3.文件(文件夹)操作4.整数测试5.字符串测试6.if条件语句7.文件夹复制删除1.安装脚本 macOS 中的偏好设置和配置文件使用属性列表 (plist) 来指定某个 App 或进程的特征或属性。例如,“访达”的偏好设置 plist(位于用户个人文件夹中的“资源库…

定位器与PWM的LED控制

文章目录 一、STM32定时器二、脉宽调制pwm三、定时器控制led(1)实验内容(2)创建工程(3)Keli程序(4)观察波形图(5)实物连接图(6)实践效…

一文了解MyBatis

文章目录 MyBatis1. MyBatis的执行流程2. MyBatis是否支持延迟加载3. MyBatis延迟加载的底层原理4. MyBatis的二级缓存机制用过吗5. 谈谈MyBatis框架的优势6. 简单描述MyBatis的工作原理7. MyBatis中的sql标签8. MyBatis中的${}和#{}的区别9. MyBatis中ResulyMap的作用[重要]10…

UDP网络聊天室(更)

服务器端 #include <header.h> typedef struct node {char name[20];struct sockaddr_in cli_addr;struct node *next; }node,*node_p; typedef struct msg {char type;char name[20];char text[128]; }msg; node_p create_link() {node_p H(node_p)malloc(sizeof(node)…

Excel超级表的注意事项

#Excel&#xff0c;插入&#xff0c;表格。即得到一张“超级表”。实际上它才是真正意义上的Excel表格&#xff0c;我们平时所使用的表格&#xff0c;其实是一块区域。表格是一个整体&#xff0c;而区域的范围是可以蔓延的。 计算的字段在新增内容时&#xff0c;是会自动填充的…

使用Selenium获取框架内网页源码

使用Selenium获取框架内网页源码 要使用Selenium获取框架内的网页源码&#xff0c;您可以按照以下步骤操作&#xff1a; 首先&#xff0c;确保您已经安装了Selenium库以及对应的WebDriver。例如&#xff0c;如果您使用的是Chrome浏览器&#xff0c;则需要下载ChromeDriver。 …

网络业务创新驱动下的DPU P4技术,中科驭数在网络开源技术生态大会上分享最新进展

2024年5月25日&#xff0c;由中国通信学会指导&#xff0c;中国通信学会开源技术专业委员会、江苏省未来网络创新研究院主办的第四届网络开源技术生态大会在北京举办&#xff0c;中科驭数产品总监李冬以《合作如兰&#xff0c;扬扬其香 中科驭数助力P4产业发展与生态建设》为主…

React hooks - 自定义hooks

自定义hooks 自定义封装鼠标位置的 hook自定义封装秒数倒计时的 hook 在 src 目录下新建 hooks/index.ts 模块&#xff0c;自定义hooks都写在这里&#xff0c;自定义hooks都以use开头 自定义封装鼠标位置的 hook export const useMousePosition (delay:number 0) > {cons…

Java中的注解(Annotation)是什么?它们有什么用途?

技术难点 在Java中&#xff0c;注解&#xff08;Annotation&#xff09;是一种元数据&#xff08;metadata&#xff09;的形式&#xff0c;用于为Java代码&#xff08;类、方法、变量、参数和包等&#xff09;提供额外的信息。这些信息在运行时可以通过反射机制进行读取和处理…

Cweek2+3

C语言学习 五.操作符 5.单目操作符(2) sizeof不能用于计算动态分配的内存 在对数组使用sizeof时&#xff0c;返回的是整个数组的大小&#xff08;所有元素的总字节数&#xff09;。而对指针使用sizeof时&#xff0c;返回的是指针本身的大小&#xff08;通常是机器字长的大小…

uniapp配置跨域问题

在vue2中可以在manifest.json中的devServer里设置 在vue3中需要在vite.config.ts(vite.config.js)中的defineConfig中添加代理设置 export default defineConfig({....,server: {proxy: {/api: {target: http://127.0.0.1:8989,changeOrigin:true,rewrite:(path)>path.rep…

怎么简单的把图片缩小?图片在线改大小的方法

在日常工作中经常需要在网上上传图片&#xff0c;但是一般网上不同的平台对上传的图片大小和尺寸都会有限定的要求&#xff0c;不符合要求无法正常上传使用。所以当遇到图片太大的问题时&#xff0c;该如何快速修改图片大小&#xff0c;有很多的小伙伴都很关注这个问题的解决方…

【Qt秘籍】[002]-开始你的Qt之旅-下载

一、Qt的开发工具有哪些&#xff1f; Qt的开发工具概述Qt支持多种开发工具&#xff0c;其中最常见的开发工具是 1.QtCreator 【易上手/有少量bug/适合新手】 2.VisualStudio 【功能强大/易出错/需要更多额外配置】 3.Eclipse 【清朝老兵IDE/不建议使用】 【注意&#xff1…

【第三节】类的构造和析构函数

目录 一、数据成员的初始化 二、构造函数 2.1 什么是构造函数 2.2 构造函数的注意事项 三、析构函数 四、带参数的构造函数 五、缺省构造函数 六、构造函数初始化列表 七、拷贝构造函数和调用规则 八、深拷贝和浅拷贝 九、总结 一、数据成员的初始化 定义普通变量&am…

基于BP神经网络和小波变换特征提取的烟草香型分类算法matlab仿真,分为浓香型,清香型和中间香型

目录 1.算法运行效果图预览 2.算法运行软件版本 3.部分核心程序 4.算法理论概述 5.算法完整程序工程 1.算法运行效果图预览 2.算法运行软件版本 matlab2022a 3.部分核心程序 ...................................................................................... …

深入探究Java自动拆箱与装箱的实现原理

哈喽&#xff0c;各位小伙伴们&#xff0c;你们好呀&#xff0c;我是喵手。运营社区&#xff1a;C站/掘金/腾讯云&#xff1b;欢迎大家常来逛逛 今天我要给大家分享一些自己日常学习到的一些知识点&#xff0c;并以文字的形式跟大家一起交流&#xff0c;互相学习&#xff0c;一…

AOSP之编译adb

adb指令原理网上很多帖子&#xff0c;这里不再赘述 在AOSP中&#xff0c;adb的源码路径在system/core/adb目录下&#xff0c;当我们需要修改adb文件&#xff0c;加入或者删改一些内容的时候就需要修改这个路径下的文件&#xff0c;那么如何编译和替换测试 1.编译&#xff1a; …