【2023.11.26】Mybatis自定义映射规则学习
创建自定义映射规则
<select id="selectArtist" resultMap="test">select * from artist
</select>
在SQL语句标签中将resultType修改为resultMap,即自定义映射的id。
编写自定义映射规则:
<resultMap id="test" type="com.test.artist">
<result column="aID" property="aID_java"/>
</resultMap>
resultMap标签:id用以连接select标签,type代替了select标签中的resultType属性。
result标签:column代表数据库中的字段名,property代表赋值给的实体类成员变量名。
实现多表查询
1.一对多查询:
@Data
public class Teacher {int tid;String name;List<Student> studentList;
}
<select id="getTeacherByTid" resultMap="asTeacher">
select *, teacher.name as tname from student
inner join teach on student.sid = teach.sid
inner join teacher on teach.tid = teacher.tid where teach.tid = #{tid}
</select><resultMap id="asTeacher" type="Teacher"><id column="tid" property="tid"/><result column="tname" property="name"/><collection property="studentList" ofType="Student"><id property="sid" column="sid"/><result column="name" property="name"/><result column="sex" property="sex"/></collection>
</resultMap>
result.id:表示自定义映射的唯一标识,不能重复。
collection标签:property表示集合的成员变量名称,ofType表示集合数据泛型(为一个类)。
在collection标签中继续写子查询结果列表。
2.多对一查询:
<resultMap id="test2" type="Student"><id column="sid" property="sid"/><result column="name" property="name"/><result column="sex" property="sex"/><association property="teacher" javaType="Teacher"><id column="tid" property="tid"/><result column="tname" property="name"/></association>
</resultMap>
<select id="selectStudent" resultMap="test2">select *, teacher.name as tname from student left join teach on student.sid = teach.sidleft join teacher on teach.tid = teacher.tid
</select>
association标签:property表示实体类的成员变量名称,ofType表示变量类型(为一个类)。
在association标签中继续写子查询结果列表。
相关文章:
【2023.11.26】Mybatis自定义映射规则学习
创建自定义映射规则 <select id"selectArtist" resultMap"test">select * from artist </select> 在SQL语句标签中将resultType修改为resultMap,即自定义映射的id。 编写自定义映射规则: <resultMap id"tes…...
Nginx(九) aio sendfile directio 组合使用测试(2)
测试7:开启directio2m、sendfile,关闭aio,请求/vendor.js {"time_iso8601":"2023-11-26T22:47:3508:00","request_uri":"/vendor.js","status":"200","bytes_sent":…...

使用ETLCloud实现CDC实时数据集成:从MySQL到ClickHouse的实时数据同步
背景 在上一篇文章中体验了 ETLCloud 的离线数据迁移功能,就像大数据领域里有离线计算和实时计算, ETLCloud 还提供了基于 CDC (Change Data Capture)的实时数据集成功能:实时数据集成是指通过变化数据捕获技术&#…...

【云平台】STM32微信小程序阿里云平台学习板
【云平台】STM32微信小程序阿里云平台学习板 文章目录 前言一、立创EDA(硬件设计)1.主控STM32F103C8T62.ESP8266模块3.温湿度模块4.光照强度模块5.OLED显示模块6.PCB正面7.PCB反面8.3D视角正面9.3D视角反面 二、【云平台】STM32微信小程序阿里云平台学习…...

【研究中2】sql server权限用户设置
--更新时间2023.11.26 21:30 负责人:jerrysuse DBAliCMSIF EXISTS (select * from sysobjects where namehkcms_admin)--判断是否存在此表DROP TABLE hkcms_adminCREATE TABLE hkcms_admin (id int identity(1, 1),--id int primary key identity…...

从零开始学习管道:管道程序的优化和文件描述符继承问题
📟作者主页:慢热的陕西人 🌴专栏链接:Linux 📣欢迎各位大佬👍点赞🔥关注🚓收藏,🍉留言 本博客主要内容管道后续的完善,以及解决管道继承多个文件描…...

【JavaWeb】HTMLCSSJavaScript
HTML&CSS&JavaScript 文章目录 HTML&CSS&JavaScript一、开发工具及在线帮助文档二、 HTML2.1 HTML&CSS&JavaScript的作用2.2 HTML基础结构2.3 HTML概念词汇解释2.4 HTML的语法规则2.5 常用标签 三、CSS3.1 引入方式3.2 CSS选择器3.3 CSS浮动3.4 CSS定位…...

如何在没有备份的情况下恢复 iPhone 上已删除的短信
要在没有备份的情况下恢复 iPhone 上已删除的消息,您可以从“消息”应用程序恢复它们或使用第三方数据恢复工具。 虽然我们的 iPhone 可以做很多事情,但我在设备上最常做的事情之一就是文本。无论我是与朋友或家人联系,还是分享重要信息&…...

tomcat-pass-getshell 弱口令 漏洞复现
tomcat-pass-getshell 弱口令 漏洞复现 名称: tomcat-pass-getshell 弱口令 描述: Tomcat是Apache 软件基金会(Apache Software Foundation)的Jakarta 项目中的一个核心项目,由Apache、Sun 和其他一些公司及个人共同开发而成。 通过弱口令登…...

利用 LD_PRELOAD 环境变量
文章目录 原理LD_PRELOAD介绍如何上传.so文件 例题 [虎符CTF 2022]ezphp 原理 LD_PRELOAD介绍 LD_PRELOAD是Linux系统的一个环境变量,它可以影响程序的运行时的链接(Runtime linker),它允许你定义在程序运行前优先加载的动态链接…...

黑马点评-Feed流的实现方案,基于推拉结合模式实现笔记推送
Feed流实现方案 我们关注了博主之后,当用户发布了动态后我们应该把这些数据推送给粉丝,关注推送也叫作Feed(投喂)流,通过无限下拉刷新获取新的信息 传统的模式内容检索: 粉丝需要主动通过搜索引擎或者是其他方式去查找想看的内容新型Feed流的效果: 系统分析用户到底想看什么,…...

Re53:读论文 How Can We Know What Language Models Know?
诸神缄默不语-个人CSDN博文目录 诸神缄默不语的论文阅读笔记和分类 论文名称:How Can We Know What Language Models Know? ArXiv网址:https://arxiv.org/abs/1911.12543 官方GitHub项目(prompt之类的都有):https:…...

YARN工作流程详解
图1 图2 图1 -作业提交阶段: 1、client 提交job,向 ResourceManager【RM】 申请job_id; 2、RM 返回 job_id 及资源提交路径 给 client 3、client 把job所需的资源提交 到 3中指定的路径中 4、client 上传完成资源后,向RM 发送执行作业请求,RM…...

力扣373场周赛题解
第一题: 这个题是一个简单题,数据范围也特别小,所以直接使用模拟方式暴力解答。 直接进行行移动的过程,然后检查移动后的结果是否与移动前相同。 代码: public class Solution {// 将指定行循环右移k次pri…...
编程语言发展史:Rust语言的出现和特点
一、Rust语言的出现 Rust语言是一种由Mozilla开发的系统级编程语言,该语言于2010年首次公布,由Graydon Hoare在Mozilla的工作期间开发,最初是为了替代C而设计的。Rust语言的目标是提供一种安全、高效、并发性强的编程语言,同时保…...

Centos Bind安装与排错
1.配置Centos系统静态IP vi/etc/sysconfig/network-scripts/ifcfg-ens33BOOTPROTOstaticIPADDR192.168.1.100NETMASK255.255.255.0GATEWAY192.168.1.1DNS18.8.8.8:wqsudo systemctl restart network.service 2.安装BIND(需要服务器连接互联网,如果服务…...
spark中write算子和format算子详解
在spark中,想要往数据库或者某sink路径里面写数据,存到外部存储系统,如文件系统、数据库或数据仓库,经常会用到write算子。 具体来说,write算子通常与DataFrame或Dataset API一起使用,用于将数据写入持久化…...

设计模式—接口隔离原则(ISP)
1.背景 2002 年罗伯特C.马丁给“接口隔离原则”的定义是:客户端不应该被迫依赖于它不使用的方法(Clients should not be forced to depend on methods they do not use)。该原则还有另外一个定义:一个类对另一个类的依赖应该建立…...

Jenkins用126邮箱发邮件为什么发不出去
1、检查 Jenkins Location中的邮件地址配置与发邮件的地址配置是否一致 Manage Jenkins -》 system 2、检查地址和端口号 3、检查邮箱的登录配置是否正确(这个地方的配置方式网上一抓一大把,自己搜一下就好) 4、126邮箱发邮件不需要勾选ssl协…...

怎么给数据库某个字段建立一个前缀索引
说明:SQL调优中重要的一个环节是建立索引,其中有一条是字段值过长字段应该建立前缀索引,即根据字段值的前几位建立索引,像数据库中的密码字段、UUID字段。 因为其随机性,其实根据前几位就可以锁定某一条记录了。前缀索…...

shell脚本--常见案例
1、自动备份文件或目录 2、批量重命名文件 3、查找并删除指定名称的文件: 4、批量删除文件 5、查找并替换文件内容 6、批量创建文件 7、创建文件夹并移动文件 8、在文件夹中查找文件...

【HarmonyOS 5.0】DevEco Testing:鸿蒙应用质量保障的终极武器
——全方位测试解决方案与代码实战 一、工具定位与核心能力 DevEco Testing是HarmonyOS官方推出的一体化测试平台,覆盖应用全生命周期测试需求,主要提供五大核心能力: 测试类型检测目标关键指标功能体验基…...
java 实现excel文件转pdf | 无水印 | 无限制
文章目录 目录 文章目录 前言 1.项目远程仓库配置 2.pom文件引入相关依赖 3.代码破解 二、Excel转PDF 1.代码实现 2.Aspose.License.xml 授权文件 总结 前言 java处理excel转pdf一直没找到什么好用的免费jar包工具,自己手写的难度,恐怕高级程序员花费一年的事件,也…...

SCAU期末笔记 - 数据分析与数据挖掘题库解析
这门怎么题库答案不全啊日 来简单学一下子来 一、选择题(可多选) 将原始数据进行集成、变换、维度规约、数值规约是在以下哪个步骤的任务?(C) A. 频繁模式挖掘 B.分类和预测 C.数据预处理 D.数据流挖掘 A. 频繁模式挖掘:专注于发现数据中…...

UE5 学习系列(三)创建和移动物体
这篇博客是该系列的第三篇,是在之前两篇博客的基础上展开,主要介绍如何在操作界面中创建和拖动物体,这篇博客跟随的视频链接如下: B 站视频:s03-创建和移动物体 如果你不打算开之前的博客并且对UE5 比较熟的话按照以…...
鸿蒙中用HarmonyOS SDK应用服务 HarmonyOS5开发一个医院查看报告小程序
一、开发环境准备 工具安装: 下载安装DevEco Studio 4.0(支持HarmonyOS 5)配置HarmonyOS SDK 5.0确保Node.js版本≥14 项目初始化: ohpm init harmony/hospital-report-app 二、核心功能模块实现 1. 报告列表…...

让AI看见世界:MCP协议与服务器的工作原理
让AI看见世界:MCP协议与服务器的工作原理 MCP(Model Context Protocol)是一种创新的通信协议,旨在让大型语言模型能够安全、高效地与外部资源进行交互。在AI技术快速发展的今天,MCP正成为连接AI与现实世界的重要桥梁。…...
力扣-35.搜索插入位置
题目描述 给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。 请必须使用时间复杂度为 O(log n) 的算法。 class Solution {public int searchInsert(int[] nums, …...

uniapp手机号一键登录保姆级教程(包含前端和后端)
目录 前置条件创建uniapp项目并关联uniClound云空间开启一键登录模块并开通一键登录服务编写云函数并上传部署获取手机号流程(第一种) 前端直接调用云函数获取手机号(第三种)后台调用云函数获取手机号 错误码常见问题 前置条件 手机安装有sim卡手机开启…...

Rust 开发环境搭建
环境搭建 1、开发工具RustRover 或者vs code 2、Cygwin64 安装 https://cygwin.com/install.html 在工具终端执行: rustup toolchain install stable-x86_64-pc-windows-gnu rustup default stable-x86_64-pc-windows-gnu 2、Hello World fn main() { println…...