Mybatis总结--传参二
#叫做占位符
Mybatis是封装的JDBC 增强版 内部还是用的jdbc
每遇到一个#号 这里就会变为?占位符
一个#{}就是对应一个问号 一个占位符

用这个对象执行sql语句没有sql注入的风险
八、多个参数-使用@Param
当 Dao 接口方法有多个参数,需要通过名称使用参数:在方法形参前面加入@Param(“自定义参数名 ”),mapper 文件使用#{自定义参数名}。

8.1、sql映射文件,StudentDao.xml:
<select id = "selectMulitParam" resultType="com.lifang.domain.Student">select id,name,email,age from student where name = #{myname} or age = #{myage}</select>
8.2、StudentDao接口:
public List<Student> selectMulitParam(@Param("myname") String name,@Param("myage") Integer age);
8.3、测试代码及结果:
@org.junit.Testpublic void test04(){SqlSession sqlSession = MybatisUtils.getSqlSession();StudentDao dao = sqlSession.getMapper(StudentDao.class);List<Student> students = dao.selectMulitParam("李四",23);students.forEach(student -> System.out.println(student));}

九、多个参数-使用对象
使用 java 对象传递参数, java 的属性值就是 sql 需要的参数值。 灵活又方便


语法格式: #{ property属性名,javaType=java 数据类型的全限定名称,jdbcType=Mybatis定义的数据库中类型的名称 }
javaType, jdbcType 的类型 MyBatis 可以通过反射获取,一般不需要设置。
常用格式 #{ property }
9.1、代表数据的实体类:
public class QueryParam {private String queryName;private Integer queryAge;
9.2、sql映射文件,StudentDao.xml:
<select id = "selectMultiObject" resultType="com.lifang.domain.Student">select id,name,email,age from student where name = #{queryName} or age =#{queryAge}</select>
9.3、StudentDao接口:
public List<Student> selectMultiObject(QueryParam queryParam);
9.4、测试代码及结果:
@org.junit.Testpublic void test05(){SqlSession sqlSession = MybatisUtils.getSqlSession();StudentDao dao = sqlSession.getMapper(StudentDao.class);QueryParam queryParam = new QueryParam("王五",23);List<Student> students = dao.selectMultiObject(queryParam);students.forEach(student -> System.out.println(student));}
9.5、总结:
所以我们传参的时候灵活一点,参数可以是现成的java对象,如Student;或者用自定义的java对象QueryParam:
public List<Student> selectMultiObject(QueryParam queryParam);public List<Student> selectMultiStudent(Student student);
<select id = "selectMultiObject" resultType="com.lifang.domain.Student">select id,name,email,age from student where name = #{queryName} or age =#{queryAge}</select><select id = "selectMultiStudent" resultType = "com.lifang.domain.Student">select id,name,email,age from student where name = #{name} or age = #{age}</select>
十、多个参数-使用对象
相关文章:
Mybatis总结--传参二
#叫做占位符 Mybatis是封装的JDBC 增强版 内部还是用的jdbc 每遇到一个#号 这里就会变为?占位符 一个#{}就是对应一个问号 一个占位符 用这个对象执行sql语句没有sql注入的风险 八、多个参数-使用Param 当 Dao 接口方法有多个参数,需要通过名称使…...
2024年数字化转型风口趋势大赏
人工智能和自动化确实为提高效率和数据驱动的见解提供了巨大的潜力,但这些技术无法完全取代人类技能和情境决策。在混合模型中将人工智能功能与人类专业知识相结合的企业将实现最大的效益。 随着人工智能和自动化的不断发展,企业必须调整其战略、流程和人…...
某款服务器插上4张TDP功耗75瓦PCIE卡无法开机的调试过程
1.服务器厂家说这款服务器测过别家的4卡,所以一开始并没有怀疑服务器硬件有问题 2.拔掉另外三张,只保留cpu0对应的riser0 slot0上的一张卡,仍然无法开机。 3.怀疑是这张pcie卡bar空间太大导致。换另一款bar空间小的卡,仍然无法开…...
数据结构与算法——排序算法
目录 文章目录 前言 一.排序的基本概念 1.什么是就地排序 2.什么是内部排序和外部排序 3.什么是稳定排序 4.判定一个排序算法的是稳定的 二.插入排序算法 1.直接插入排序 1.1基本思想 1.2复杂度 1.3稳定性 1.4代码演示 2.折半插入排序 2.1基本思想 2.2性能 3.…...
阿里巴巴alibaba API商品详情接口系列(商品属性,价格,主图)阿里巴巴alibaba根据ID取商品详情 API 返回值说明
阿里巴巴Alibaba的API商品详情接口系列通常用于获取指定商品的详细信息,包括商品属性、价格、主图等。与来赞达Lazada的API类似,具体的返回值可能会根据API的版本和阿里巴巴平台的更新而有所不同。 以下是一个假设的阿里巴巴API商品详情接口的返回值示例…...
lcd画圆
//****************************************************************** //函数名: _draw_circle_8 //功能: 8对称性画圆算法(内部调用) //输入参数:(xc,yc) :圆中心坐标 // (x,y):光标相对于圆心的坐标 // c:填…...
React组件详解
React组件分为两大类 1.函数组件 2.类组件(最常用) 组件化 import ReactDom from "react-dom";// // 1.通过函数创建一个组件 // 2.函数名字必须大写开头 // 3.函数必须有返回值 function Func1() {return <h2>这是一个基础组件</h…...
C++面试:内存溢出、内存泄漏的原因与解决
目录 内存溢出(Memory Overflow) 内存溢出介绍 解决内存溢出问题的方法 内存泄漏(Memory Leak) 内存泄露基础 解决内存泄漏问题的方法 内存溢出(Memory Overflow) 内存溢出介绍 内存溢出是指程序在执…...
【Java程序员面试专栏 算法思维】二 高频面试算法题:二分查找
一轮的算法训练完成后,对相关的题目有了一个初步理解了,接下来进行专题训练,以下这些题目就是汇总的高频题目,本篇主要聊聊二分查找,包括基础二分,寻找目标值的左右边界,搜索旋转数组以及波峰,以及x的平方根问题,所以放到一篇Blog中集中练习 题目关键字解题思路时间空…...
kaldi 详细安装教程、PyTorch-Kaldi、TIMIT下载、Librispeech下载
kaldi 详细安装教程 本kaldi 安装教程 转载于该链接kaldi 详细安装教程 安装系统依赖(如果经常使用linux 服务器,一般都会有) apt-get updateapt-get install -y --no-install-recommends g make automake autoconf bzip2 unzip wget sox …...
EtherCAT 转 ModbusTCP 网关
功能概述 本产品是 EtherCAT 和 Modbus TCP 网关,使用数据映射方式工作。 本产品在 EtherCAT 侧作为 EtherCAT 从站,接 TwinCAT 、CodeSYS 、PLC 等;在 ModbusTCP 侧做为 ModbusTCP 主站(Client)或从站(Se…...
iMazing2024Windows和Mac的iOS设备管理软件(可以替代iTunes进行数据备份和管理)
iMazing2024是一款兼容 Windows 和 Mac 的 iOS 设备管理软件,可以替代 iTunes 进行数据备份和管理。以下是一些 iMazing 的主要功能和优点: 数据备份和恢复:iMazing 提供了强大的数据备份和恢复功能,可以备份 iOS 设备上的各种数据…...
carpower
车载android 电源管理 车载音响电源管理器_definitely的技术博客_51CTO博客...
数据结构2月25日
第一道: 第二道: 1、插入到prev和next中间 1.new(struct list_head*)malloc(sizeof(struct list_head*)); if(newNULL) { printf("失败\n"); return; } new->nextprev->next; prev->nextnew; return; 2、删除prve和next…...
改进 RAG:自查询检索
原文地址:Improving RAG: Self Querying Retrieval 2024 年 2 月 11 日 让我们来解决构建 RAG 系统时的一个大问题。 我们不能依赖语义搜索来完成每个检索任务。只有当我们追求单词的含义和意图时,语义搜索才有意义。 But in case,我们正…...
【Git企业实战开发】Git常用开发流操作总结
【Git企业实战开发】Git常用开发流操作总结 大家好 我是寸铁👊 总结了一篇Git常用开发流操作总结的文章✨ 喜欢的小伙伴可以点点关注 💝 现在刚做项目的伙伴,可能你之前学过git,但是一实战发现不熟悉 没关系,看寸铁这篇…...
vue2+element医院安全(不良)事件报告管理系统源代码
目录 安全不良事件类型 源码技术栈 医院安全(不良)事件报告管理系统采用无责的、自愿的填报不良事件方式,有效地减轻医护人员的思想压力,实现以事件为主要对象,可以自动、及时、实际地反应医院的安全、不良、近失事件…...
leetcode初级算法(python)- 字符串
文章目录 1.反转字符串常规算法pythonic 算法2.整数反转数学法字符串法3.字符串中的第一个唯一字符pythonic算法哈希算法4.有效的字母异位词常规算法进阶算法5.最长公共前缀1.反转字符串 输入:[‘h’,‘e’,‘l’,‘l’,‘o’] 输出:[‘o’,‘l’,‘l’,‘e’,‘h’]...
Python 鼠标模拟
鼠标模拟即:通过python 进行模拟鼠标操作 引入类库 示例如下: import win32api import win32con import time 设置鼠标位置 设置鼠标位置为窗口中的回收站。 示例如下: # 设置鼠标的位置 win32api.SetCursorPos([30, 40]) 双击图标 设置…...
Linux进程 ----- 信号处理
前言 从信号产生到信号保存,中间经历了很多,当操作系统准备对信号进行处理时,还需要判断时机是否 “合适”,在绝大多数情况下,只有在 “合适” 的时机才能处理信号,即调用信号的执行动作。 一、信号的处理…...
Rails AI上下文模块设计:领域驱动与AI服务集成实践
1. 项目概述:当植物病理学遇上AI代码助手最近在整理一个老项目时,我遇到了一个非常有意思的命名:“Peronosporaceaevenography165/rails-ai-context”。乍一看,这像是一个典型的GitHub仓库命名风格,前半部分是极其专业…...
DupeGuru终极指南:三步快速清理重复文件释放磁盘空间
DupeGuru终极指南:三步快速清理重复文件释放磁盘空间 【免费下载链接】dupeguru Find duplicate files 项目地址: https://gitcode.com/gh_mirrors/du/dupeguru 你是否经常遇到电脑存储空间不足的困扰?是否发现大量重复文件占据了宝贵的磁盘空间&…...
手机号到QQ号查询技术实现原理与TEA加密通信架构解析
手机号到QQ号查询技术实现原理与TEA加密通信架构解析 【免费下载链接】phone2qq 项目地址: https://gitcode.com/gh_mirrors/ph/phone2qq phone2qq是一个基于Python实现的逆向工程工具,通过分析腾讯QQ客户端的通信协议,实现了通过手机号查询对应…...
Qt界面嵌入Halcon窗口实战:告别弹窗,实现图像控件一体化显示
Qt与Halcon深度整合:实现无缝图像控件嵌入的工程实践 在工业视觉和医疗影像处理领域,Qt框架与Halcon图像处理库的结合堪称黄金搭档。但许多开发者初次尝试这种混合开发时,都会遇到一个恼人的问题——Halcon的显示窗口总是顽固地以独立弹窗形式…...
Hummingbot自动化交易框架:从原理到实战的量化交易指南
1. 项目概述:一个为专业交易者打造的自动化交易框架如果你在加密货币交易领域摸爬滚打过一段时间,一定会对“手动盯盘”的疲惫和“情绪化操作”的代价深有体会。市场24/7运转,机会转瞬即逝,而人的精力终究有限。这正是我最初接触并…...
别再死记硬背了!用STM32H7的USB CDC类实战,反向理解USB协议栈核心概念
从实战出发:用STM32H7的USB CDC类逆向掌握协议栈精髓 当开发板上的LED第一次随着串口指令闪烁时,我意识到USB协议栈不再是手册里晦涩的名词——端点成了数据管道,描述符变身设备身份证,而曾经令人头疼的HID报告突然有了具象意义。…...
LENS多模态模型评估实战:从模块消融到失败案例的深度剖析
1. 项目概述:从评估报告到实战指南最近在复现和深入分析LENS这个多模态模型时,我发现原始论文的补充材料虽然数据详实,但更像一份“内部技术报告”,对于想真正理解其能力边界、复现评估过程,甚至想借鉴其架构思路的同行…...
从零搭建自动化任务中心:mgks/automation-hub部署与实战指南
1. 项目概述:自动化工作流的“中央厨房”如果你和我一样,在开发、运维或者日常工作中,经常需要重复执行一系列命令、脚本或者任务,那么你肯定对“自动化”这个词有着深刻的渴望。从简单的文件备份、日志清理,到复杂的C…...
硬件感知虚拟原型技术:软硬件协同设计的关键
1. 硬件感知虚拟原型技术概述在当今电子系统设计中,软件所占比重持续攀升。从通信设备到汽车电子,再到消费类产品,嵌入式软件已成为实现产品差异化的核心要素。这种转变源于软件实现的显著优势:低成本的设计变更、现场更新能力、快…...
从虚拟到物理:电子系统原型设计的工程化策略与实战解析
1. 原型设计全景:从概念到实物的工程化思维 在电子系统设计领域,尤其是面对航空航天、汽车电子、通信设备这类高复杂、高可靠性要求的项目时,“原型”这个词的分量远超一个简单的模型。它不是一个可有可无的步骤,而是连接创意与产…...
