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在哪里? 好像只有这个。。。 试一下,不是 我…...
云原生核心技术 (7/12): K8s 核心概念白话解读(上):Pod 和 Deployment 究竟是什么?
大家好,欢迎来到《云原生核心技术》系列的第七篇! 在上一篇,我们成功地使用 Minikube 或 kind 在自己的电脑上搭建起了一个迷你但功能完备的 Kubernetes 集群。现在,我们就像一个拥有了一块崭新数字土地的农场主,是时…...
rknn优化教程(二)
文章目录 1. 前述2. 三方库的封装2.1 xrepo中的库2.2 xrepo之外的库2.2.1 opencv2.2.2 rknnrt2.2.3 spdlog 3. rknn_engine库 1. 前述 OK,开始写第二篇的内容了。这篇博客主要能写一下: 如何给一些三方库按照xmake方式进行封装,供调用如何按…...
反向工程与模型迁移:打造未来商品详情API的可持续创新体系
在电商行业蓬勃发展的当下,商品详情API作为连接电商平台与开发者、商家及用户的关键纽带,其重要性日益凸显。传统商品详情API主要聚焦于商品基本信息(如名称、价格、库存等)的获取与展示,已难以满足市场对个性化、智能…...
安宝特方案丨XRSOP人员作业标准化管理平台:AR智慧点检验收套件
在选煤厂、化工厂、钢铁厂等过程生产型企业,其生产设备的运行效率和非计划停机对工业制造效益有较大影响。 随着企业自动化和智能化建设的推进,需提前预防假检、错检、漏检,推动智慧生产运维系统数据的流动和现场赋能应用。同时,…...
【解密LSTM、GRU如何解决传统RNN梯度消失问题】
解密LSTM与GRU:如何让RNN变得更聪明? 在深度学习的世界里,循环神经网络(RNN)以其卓越的序列数据处理能力广泛应用于自然语言处理、时间序列预测等领域。然而,传统RNN存在的一个严重问题——梯度消失&#…...
CentOS下的分布式内存计算Spark环境部署
一、Spark 核心架构与应用场景 1.1 分布式计算引擎的核心优势 Spark 是基于内存的分布式计算框架,相比 MapReduce 具有以下核心优势: 内存计算:数据可常驻内存,迭代计算性能提升 10-100 倍(文档段落:3-79…...
微信小程序 - 手机震动
一、界面 <button type"primary" bindtap"shortVibrate">短震动</button> <button type"primary" bindtap"longVibrate">长震动</button> 二、js逻辑代码 注:文档 https://developers.weixin.qq…...
如何在看板中有效管理突发紧急任务
在看板中有效管理突发紧急任务需要:设立专门的紧急任务通道、重新调整任务优先级、保持适度的WIP(Work-in-Progress)弹性、优化任务处理流程、提高团队应对突发情况的敏捷性。其中,设立专门的紧急任务通道尤为重要,这能…...
WordPress插件:AI多语言写作与智能配图、免费AI模型、SEO文章生成
厌倦手动写WordPress文章?AI自动生成,效率提升10倍! 支持多语言、自动配图、定时发布,让内容创作更轻松! AI内容生成 → 不想每天写文章?AI一键生成高质量内容!多语言支持 → 跨境电商必备&am…...
【C++从零实现Json-Rpc框架】第六弹 —— 服务端模块划分
一、项目背景回顾 前五弹完成了Json-Rpc协议解析、请求处理、客户端调用等基础模块搭建。 本弹重点聚焦于服务端的模块划分与架构设计,提升代码结构的可维护性与扩展性。 二、服务端模块设计目标 高内聚低耦合:各模块职责清晰,便于独立开发…...
