mybatis#{}与${}的区别,mybatis关联查询,mybatis动态sql
1.#{}与${}的区别
#{}是占位符,是采用预编译的方式向sql中传值,可以防止sql注入如果我们往sql中传值,可以使用这个,例如这个delete语句


${}将内容直接拼接到sql语句中,一般不用于传值,可以当作列名,加上单引号可以传值直接拼在sql语句中,例如排序,分组,需要在定义方法的时候加上注解@param
当作列名

当作列名跟在group by后面



2.mybatis关联查询
关联查询
关联查询就要使用resultmap标签,让数据库的数据与java对象中的属性一一印射,
<resultMap id="findadmin" type="admin"><id column="adminid" property="id"></id><result column="adminaccount" property="account"></result></resultMap><select id="findadmin" resultMap="findadmin">
select id adminid,account adminaccount from admin</select>
使用resultmap标签对查询结果进行自定义印射
type="admin"返回值类型
<id column="adminid" property="id"></id> id主键印射
<result column="adminaccount" property="account"></result> 普通列名印射
例如查询学生表与专业表

关联查询时一般都要写association标签在resultmap标签里面,关联查询时,id,num,name,gender等都要书写上,mybatis默认出现关联查询如果不写的话就不能将数据库的数据印射到java对象中。单表查询的话自定义印射可以不用书写。

印射的过程就是对这段代码的封装。
嵌套查询

查询出来的表结构也发生了变化,但是最终的结果不变

进行了两次查询,可以理解为进行了两次单表查询,但是将关联条件当作第二次查询的条件。
一对多数据封装,在major对象里面有学生集合,学生集合为list,类型是学生类型

查询的结果有多条时,mybatis会自动对数据进行封装的major类型的集合里面。
一对多关联查询

注解查询,简单查询或者单张表查询可以使用,因为注解查询sql语句是用字符串形式拼接的,所以有时候书写可能会比较麻烦,简单的sql查询可以使用,稍微难的不建议使用。

动态sql
动态sql,在sql查询中增加逻辑判断
if标签中的test属性条件成立就会执行if标签里面的标签体
where 标签当if标签里面条件成立时,where标签会动态删除if标签里面的and or关键字保证sql语句正确性

trim 当条件成立时可以自定义前缀关键字和后缀关键字
prefix="where" 前缀where关键字
prefixOverrides="and|or" 覆盖指定的关键字(and或者or)

Choose标签 choose标签必须与when标签一块使用,otherwise可以省略,
可以理解为if else ,可以没有else必须要有if,if判断里面为true则都会执行,trim会自动添加前缀和自动省略一些关键字

Set标签 修改数据可以使用此标签,他可以自动覆盖掉sql语句中的逗号

Student类定义时num属性为int类型,java会自动给num赋值为0,建议以后定义使用integer,直接使用null即可。

删除学生 foreach循环
item="id" 每次循环的数据赋给这个id
collection="array" 循环的数据类型,数组array,集合list
open="(" 开始的标志
separator="," 两次循环间用逗号隔开
close=")" 结束的标志

通过列名查询学生信息,传递值一般用#{},传递列名一般使用${}

相关文章:
mybatis#{}与${}的区别,mybatis关联查询,mybatis动态sql
1.#{}与${}的区别 #{}是占位符,是采用预编译的方式向sql中传值,可以防止sql注入如果我们往sql中传值,可以使用这个,例如这个delete语句 ${}将内容直接拼接到sql语句中,一般不用于传值,可以当作列名&#x…...
K8S(Kubernates) 知识目录
1. 一文了解K8S(Kubernates) 2. K8S CNI CRI CSI 3. K8S Helm 4. K8S Harbor 5. K8S Operator 6. K8S 服务网格 7. K8S 存储 8. K8S 容器调度 9. K8S 探针 10. K8S Watch 11. K8S 版本发版 12. K8S 资源管理CPU&内存 13. K8S Flannel 1…...
基于Java+SpringBoot+Vue+MySQL的失物招领管理系统
作者:计算机学姐 开发技术:SpringBoot、SSM、Vue、MySQL、JSP、ElementUI等,“文末源码”。 专栏推荐:前后端分离项目源码、SpringBoot项目源码、SSM项目源码 系统展示 基于SpringBootVue的失物招领管理系统【附源码文档】、前后…...
Mybatis链路分析:JDK动态代理和责任链模式的应用
背景 此前写过关于代理模式的文章,参考:代理模式 动态代理功能:生成一个Proxy代理类,Proxy代理类实现了业务接口,而通过调用Proxy代理类实现的业务接口,实际上会触发代理类的invoke增强处理方法。 责任链功…...
【Spring Boot 3】【Web】解析获取HTTP请求参数
【Spring Boot 3】【Web】解析获取HTTP请求参数 背景介绍开发环境开发步骤及源码工程目录结构背景 软件开发是一门实践性科学,对大多数人来说,学习一种新技术不是一开始就去深究其原理,而是先从做出一个可工作的DEMO入手。但在我个人学习和工作经历中,每次学习新技术总是要…...
conda换源是什么?
换源对于我们在国内的python使用者来说是非常有必要的,之前讲了pip如何换源。 pip更换为国内镜像源的步骤,为什么要更换镜像源 那现在讲一下conda如何换源。 conda换源(清华源) 有时候,conda虽然和pip共用一个本地…...
英文缩写大全(IT 领域和电子行业制造领域)
英文缩写大全(IT 领域和电子行业制造领域) 前言一、计算机通用二、WINDOWS三、LINUX四、编程语言1. 前端 / 设计2. JAVA / Android3. PHP4. Python 四、电子行业制造领域五、常识 前言 本文收集了各类英文缩写大全,方便查阅,主要…...
如何将图片左右翻转?8种方法来将图片进行左右翻转
如何将图片左右翻转?在现代数字化的图像处理过程中,图片的方向调整是常见的操作之一。左右翻转图片不仅可以改变图像的视觉效果,还可以用于修正拍摄时的角度问题,或者满足特定设计和排版需求。比如,当你拍摄的照片由于…...
linux:ln用法详解
文章目录 1. 描述2. 语法2.1 硬链接(Hard Link)2.2. 符号链接(Symbolic Link / Soft Link) 3. ln 命令的常用选项4. 例子 1. 描述 在 Linux 系统中,ln 命令用于创建硬链接(Hard Link)或符号链接…...
0基础跟德姆(dom)一起学AI Python进阶02-Python面向对象高级
1 [重点]定义类的几种语法 方式1:类名 在上一章节的学习过程中,我们都使用了这种定义类的语法: properties class 类名: 代码 ... 例如,使用该方式来定义一个老师类。 python # 1.class 类名: # pass class Te…...
【深度学习】softmax 回归的从零开始实现与简洁实现
前言 小时候听过一个小孩练琴的故事,老师让他先弹最简单的第一小节,小孩练了两天后弹不出。接着,老师让他直接去练更难的第二小节,小孩练习了几天后还是弹不出,开始感觉到挫败和烦躁了。 小孩以为老师之后会让他从简…...
Sollong、IO.NET和 Solana,为何参加 WebX 2024活动?
东京王子花园塔酒店 ChainCatcher_携手 DPCapital_XYZ与WebX_Asia共同打造“世界のStaking最大级集结|Tokyo站”盛会,为全球Staking爱好者与行业精英搭建交流合作桥梁!全球顶尖Staking项目方、知名区块链机构、行业领袖与企业家将齐聚东京,共…...
3个免费好用的网站,可以转换PDF,提取MP3
今天分享的三个网站,分别用于文件转换PDF,QMC转MP3格式和配色网站。 TOPDF 这个网站是一个在线PDF转换工具,可以快速将文本文件、演示文稿、电子表格和图片转换为PDF格式。它支持多种文件格式,如AZW3、BMP、CHM、CSV、DjVu、DOC、…...
PHP智能匹配轻松预订自习室在线订座系统小程序源码
智能匹配,轻松预订——自习室在线订座系统 📚【开篇:告别排队,迎接智能学习新时代】📚 还在为找不到合适的自习室座位而烦恼吗?是不是每次去图书馆或自习室都要提前好久去排队占位?现在&#…...
构建高效医护人员排班系统:Spring Boot框架的优势
1系统概述 1.1 研究背景 随着计算机技术的发展以及计算机网络的逐渐普及,互联网成为人们查找信息的重要场所,二十一世纪是信息的时代,所以信息的管理显得特别重要。因此,使用计算机来管理医护人员排班系统的相关信息成为必然。开发…...
深度学习——引言
一、机器学习的关键因素 1.1 数据 每个数据集由一 个个样本组成,大多情况下,数据遵循独立同分布。通常每个样本由一组特征属性组成。 好的数据集 { 数据样本多 正确的数据 ( g a r b a g e i n , g a r b a g e o u t ) 好的数据集 \begin{cases} 数据…...
安装Android Studio及第一个Android工程可能遇到的问题,gradle下载过慢、sync失败?
Android Studio版本众多,电脑操作系统、电脑型号、电脑硬件也是多种多样,幸运的半个小时内可以完成安装,碰到不兼容的电脑,一天甚至更长时间都无法安装成功。 Android安装及第一个Android工程分为4个步骤,为什么放到一…...
密码学---常见的其他密码
✨费纳姆密码:加解密都需要密钥,以二进制形式表示的密码。(密钥多是一次性的,称位一次性密码本) 加密过程: char_num {A: 1000001, B: 1000010, C: 1000011, D: 1000100,E: 1000101, F: 1000110, G: 100…...
Mysql8 主从复制主从切换(超详细)
文章目录 1 主从复制1.1 实施前提1.2 主节点配置(在192.168.25.91操作)1.3 从节点配置(在192.168.25.92操作)1.4 创建用于主从同步的用户1.5 开启主从同步1.5 主从同步验证 2 主从切换2.1 实施前提2.2 主节点设置只读(在192.168.25.91操作)2.3 检查主从数据是否同步完毕(在192.…...
8月29日wpf
小语 折磨我们的往往是想象,而不是真实。 学wpf 7.07 1.vs如何创建新项目? 退出,创建新项目,点c#,windows,进入界面 2.app.config在哪里? 好像只有这个。。。 试一下,不是 我…...
告别AD转Cadence的迷茫:OrCAD Capture CIS 16.6新建工程与环境设置保姆级指南
告别AD转Cadence的迷茫:OrCAD Capture CIS 16.6新建工程与环境设置保姆级指南 从Altium Designer切换到Cadence OrCAD,就像从自动挡汽车换到手动挡——虽然最终目的地相同,但操作方式截然不同。我至今记得第一次打开OrCAD时那种无处下手的窘迫…...
Pixel Dream Workshop应用场景:像素风格UI组件库(按钮/滑块/图标)生成
Pixel Dream Workshop应用场景:像素风格UI组件库(按钮/滑块/图标)生成 1. 像素艺术生成新纪元 在数字产品设计领域,像素艺术正经历着令人振奋的复兴。Pixel Dream Workshop作为新一代AI像素艺术生成工具,为设计师和开…...
实战解析:基于Selenium与多线程的东方财富股吧数据采集方案
1. 为什么需要东方财富股吧数据采集 做量化分析的朋友都知道,市场情绪数据是alpha因子挖掘的重要来源。东方财富股吧作为国内活跃的股民社区,每天产生海量的讨论帖子和评论,这些数据对分析个股热度、投资者情绪变化具有重要价值。但手动收集这…...
Fancy Components最佳实践:性能优化和组件组合技巧终极指南
Fancy Components最佳实践:性能优化和组件组合技巧终极指南 【免费下载链接】fancy 项目地址: https://gitcode.com/gh_mirrors/fan/fancy Fancy Components是一个不断增长的React动画组件库,专注于为网站添加精美、有趣的微交互效果。作为开源项…...
日立电梯05版规格表智能计算工具(升级版)|WPS宏支持|适配WPS2024+Win10 64位
温馨提示:文末有联系方式日立电梯05规格表工具升级版正式发布 全新优化的日立电梯05规格表计算软件现已上线,专为电梯设计、安装与维保工程师打造,大幅提升参数录入与校验效率。功能标识更直观,操作一目了然 所有计算模块、输入项…...
【医疗数据挖掘黄金流程】:20年临床统计专家亲授R语言6步标准化建模法(附NIH验证模板)
第一章:医疗数据挖掘的临床价值与R语言选型依据医疗数据挖掘正深刻重塑临床决策范式。从电子健康档案(EHR)中提取隐含模式,可辅助早期疾病预警、个性化治疗路径推荐及药物不良反应监测。例如,在糖尿病管理中࿰…...
再次革新 .NET 的构建和发布方式(一)核
本文能帮你解决什么? 1. 搞懂FastAPI异步(async/await)到底在什么场景下能真正提升性能。 2. 掌握在FastAPI中正确使用多线程处理CPU密集型任务的方法。 3. 避开常见的坑(比如阻塞操作、数据库连接池耗尽、GIL限制)。 …...
USB运动控制五轴雕刻机系统完全开源资料:PCB生产支持,多版本C++源码,五轴联动与RTCP...
USB运动控制 (五轴雕刻机系统)全部开源 不保留任何关键技术,PCB可直接生产,C6.0源码,从13.7-18.2所有版本,本产品为可复制资料,支持五轴联动,支持RTCP算法,全部开源。1、为电子资料 2、PCB底板原…...
终极卡牌批量生成工具:让桌游设计效率提升300%的完整指南
终极卡牌批量生成工具:让桌游设计效率提升300%的完整指南 【免费下载链接】CardEditor 一款专为桌游设计师开发的批处理数值填入卡牌生成器/A card batch generator specially developed for board game designers 项目地址: https://gitcode.com/gh_mirrors/ca/C…...
基于四轮驱动的轮毂电机和轮边电机驱动的cruise动力性经济性仿真模型
cruise仿真模型,四轮驱动。 轮毂电机,轮边电机驱动cruise动力性经济性仿真模型,base模型,适用轮边电机驱动及轮毂电机驱动。 可进行动力性经济性仿真分析,控制策略包含扭矩控制及能量回收控制使用c-code编写࿰…...
