【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.rhkb.cn/news/334752.html

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

相关文章

unity回到低版本报错解决

用高版本2022打开过后的再回到2020就报了一个错。 报错如下: Library\PackageCache\com.unity.ai.navigation1.1.5\Runtime\NavMeshSurface.cs 看了一下是Library,然后我删除了整个Library文件夹,重启启动生成Library,然后还是…

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

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

学至乎没而后止也

开场白 学至后没而后止也这个题目的原话来自与荀子《劝学》。大家知道什么意思吗?学习要学到你人没了,才算停止了。通俗点说就是只要没学死就往死里学,高雅点说就是要保持终身学习。 在以前说终身学习好像是一种良好习惯或品德,…

系统思考—决策

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

推荐几款新手学习编程的网站

免费在线开发平台 介绍一款编程平台,专为学生和开发者量身打造!平台拥有近4000道编程题目,支持多种编程语言(包括C、C、JavaScript、TypeScript、Go、Rust、PHP、Java、Ruby、Python3和C#),为您提供全面的学…

Python在忘mysql密码后该如何重新连mysql

步骤一 先到mysql的bin目录下 步骤二 用mysqld delete mysql 把之前的库删了 步骤三 通过管理员模式进去后 用命令mysqld --skip-grant-tables越过验证 再输入mysql -u root 直达账户 步骤四 用FLUSH PRIVILEGES; ALTER USER rootlocalhost IDENTIFIED BY new_password; 指…

不同类型的区块链钱包有什么特点和适用场景?

区块链钱包是用于存储和管理加密货币的重要工具,市面上有许多不同类型的区块链钱包可供选择。以下是几种主要类型的区块链钱包及其特点和适用场景。 1.软件钱包: 特点:软件钱包是最常见的一种区块链钱包,通常作为软件应用程序提供…

Golang | Leetcode Golang题解之第110题平衡二叉树

题目: 题解: func isBalanced(root *TreeNode) bool {return height(root) > 0 }func height(root *TreeNode) int {if root nil {return 0}leftHeight : height(root.Left)rightHeight : height(root.Right)if leftHeight -1 || rightHeight -1 …

实现AI在教学中作用最大化的关键在于

AI的来临,正在加速教育领域的颠覆性变革,而要真正实现 AI 在教学中作用最大化的关键则在于建立一个良好的人、机、环境生态智能教育系统。在这个生态系统中,需要将管理者、教师、学生、AI 技术和教学环境有机地结合起来,实现优势互…

解决SSH客户端远程连接CentOS7虚拟机时加载过慢问题

1、编辑 /etc/ssh/sshd_config 文件,将 useDNS 中的 yes 改为 no ,关闭UseDNS加速: vi /etc/ssh/sshd_config2、重启ssh服务: systemctl restart sshd

【设计模式深度剖析】【6】【结构型】【外观模式】| 以电脑开关按钮为例,并结合微服务架构的API网关加深理解

👈️上一篇:桥接模式 设计模式-专栏👈️ 目 录 外观模式(Facade Pattern)定义英文原文直译如何理解呢?字面理解代码实现中的理解生活案例:操作多功能料理机典型案例分析:API网关与外观模式 外…

在树莓派3B+中下载opencv(遇到的各种问题及解决)

目录 前言 1、删除原版本下新版本 2、python虚拟环境 3、python版本共存换链接——给版本降低 4、烧录之前版本的文件(在清华源中可以找,不用官网的烧录文件就行; 比如:(balenaEtcher)重新烧录有问题…

科技引领未来:高速公路可视化

高速公路可视化监控系统利用实时视频、传感器数据和大数据分析,通过图扑 HT 可视化展示交通流量、车速、事故和路况信息。交通管理人员可以实时监控、快速响应突发事件,并优化交通信号和指挥方案。这一系统不仅提高了道路安全性和车辆通行效率&#xff0…

Android 配置 Kapt 编译器插件

以 Android Studio 2023.3.1 最新版本为准。 步骤1:打开版本信息配置文件 找到libs.versions.toml文件。 这是打开后的样子: 步骤2:配置版本信息 你需要在[plugins]下面添加一条kapt的配置信息: 要添加的配置信息如下: jetbr…

从0开始学会做标书:新手学习做标书制作必修(95节课)

入门框架 电子标书 商务标书 文档排版 技术标书 实操演示 你是否也有同样的问题 1、做标书公司没人教、没人带? 2、如何看懂招标文件? 3、小白零基础能不能学习做标书? 4、商务标、技术标如何得高分? 5、做标书需要什么软件? 6、如何制作电子标书? 7、如何避…

C++笔试强训day35

目录 1.奇数位丢弃 2.求和 3.计算字符串的编辑距离 1.奇数位丢弃 链接https://www.nowcoder.com/practice/196141ecd6eb401da3111748d30e9141?tpId128&tqId33775&ru/exam/oj 数据量不大&#xff0c;可以直接进行模拟&#xff1a; #include <iostream> #incl…

目标检测基础初步学习

目标检测&#xff08;Object Detection&#xff09; 目标检测任务说明 在动手学习深度学习中对目标检测任务有如下的描述。 图像分类任务中&#xff0c;我们假设图像中只有一个主要物体对象&#xff0c;我们只关注如何识别其类别。 然而&#xff0c;很多时候图像里有多个我们…

【浅水模型MATLAB】尝试完成一个数值模拟竞赛题

【浅水模型MATLAB】尝试完成一个数值模拟竞赛题 前言题目描述问题分析理论基础控制方程数值方法边界条件 代码框架与关键代码结果展示写在最后 更新于2024年5月25日 前言 最近看到第四届水科学数值模拟创新大赛的通知&#xff0c;就好奇翻看了前几年的比赛试题。发现去年的一个…

HTML5和CSS3的新特性

文章目录 一、HTML5新特性1.HTML5新增的语义化标签2.HTML5新增的多媒体标签3.HTML5新增的input类型4.HTML5新增表单属性 二、CSS3的新特性1.属性选择器2.结构伪类选择器3.伪元素选择器4.CSS3盒子模型5.过渡 一、HTML5新特性 1.HTML5新增的语义化标签 2.HTML5新增的多媒体标签 …

微信公众号关注页获取方式

Demo Location 查找步骤 仔细看下链接验证&#xff0c;排查有特点的参数__biz 分析如何获取__biz 查看某个文章线下零食届「拼多多」席卷&#xff0c;「赵一鸣们」如何高效拓店&#xff1f;&#xff0c;查看源代码 ,查找关键词 替换链接并执行