当前位置: 首页 > news >正文

MyBatis的各种查询功能

文章目录

  • 情景
  • 查询一个实体类对象
  • 查询一个List集合
  • 查询单个数据
  • 查询一条数据为map集合
  • 查询多条数据为map集合
      • 方法一
      • 方法二

情景

  1. 如果查询出的数据只有一条,可以通过
    1. 实体类对象接收
    2. List集合接收
    3. Map集合接收,结果{password=123456, sex=男, id=1, age=23, username=admin}
  2. 如果查询出的数据有多条,一定不能用实体类对象接收,会抛异常TooManyResultsException,可以通过
    1. 实体类类型的LIst集合接收
    2. Map类型的LIst集合接收
    3. 在mapper接口的方法上添加@MapKey注解

查询一个实体类对象

/*** 根据用户id查询用户信息* @param id* @return*/
User getUserById(@Param("id") int id);
<!--User getUserById(@Param("id") int id);-->
<select id="getUserById" resultType="User">select * from t_user where id = #{id}
</select>

查询一个List集合

/*** 查询所有用户信息* @return*/
List<User> getUserList();
<!--List<User> getUserList();-->
<select id="getUserList" resultType="User">select * from t_user
</select>

查询单个数据

/**  * 查询用户的总记录数  * @return  * 在MyBatis中,对于Java中常用的类型都设置了类型别名  * 例如:java.lang.Integer-->int|integer  * 例如:int-->_int|_integer  * 例如:Map-->map,List-->list  */  
int getCount();
<!--int getCount();-->
<select id="getCount" resultType="_integer">select count(id) from t_user
</select>

查询一条数据为map集合

/**  * 根据用户id查询用户信息为map集合  * @param id  * @return  */  
Map<String, Object> getUserToMap(@Param("id") int id);
<!--Map<String, Object> getUserToMap(@Param("id") int id);-->
<select id="getUserToMap" resultType="map">select * from t_user where id = #{id}
</select>
<!--结果:{password=123456, sex=男, id=1, age=23, username=admin}-->

查询多条数据为map集合

方法一

/**  * 查询所有用户信息为map集合  * @return  * 将表中的数据以map集合的方式查询,一条数据对应一个map;若有多条数据,就会产生多个map集合,此时可以将这些map放在一个list集合中获取  */  
List<Map<String, Object>> getAllUserToMap();
<!--Map<String, Object> getAllUserToMap();-->  
<select id="getAllUserToMap" resultType="map">  select * from t_user  
</select>
<!--结果:[{password=123456, sex=男, id=1, age=23, username=admin},{password=123456, sex=男, id=2, age=23, username=张三},{password=123456, sex=男, id=3, age=23, username=张三}]
-->

方法二

/*** 查询所有用户信息为map集合* @return* 将表中的数据以map集合的方式查询,一条数据对应一个map;若有多条数据,就会产生多个map集合,并且最终要以一个map的方式返回数据,此时需要通过@MapKey注解设置map集合的键,值是每条数据所对应的map集合*/
@MapKey("id")
Map<String, Object> getAllUserToMap();
<!--Map<String, Object> getAllUserToMap();-->
<select id="getAllUserToMap" resultType="map">select * from t_user
</select>
<!--结果:{1={password=123456, sex=男, id=1, age=23, username=admin},2={password=123456, sex=男, id=2, age=23, username=张三},3={password=123456, sex=男, id=3, age=23, username=张三}}
-->

相关文章:

MyBatis的各种查询功能

文章目录 情景查询一个实体类对象查询一个List集合查询单个数据查询一条数据为map集合查询多条数据为map集合方法一方法二 情景 如果查询出的数据只有一条&#xff0c;可以通过 实体类对象接收List集合接收Map集合接收&#xff0c;结果{password123456, sex男, id1, age23, us…...

【Tomcat】如何在idea上部署一个maven项目?

目录 1.创建项目 2.引入依赖 3.创建目录 4.编写代码 5.打包程序 6.部署项目 7.验证程序 什么是Tomcat和Servlet? 以idea2019为例&#xff1a; 1.创建项目 1.1 首先创建maven项目 1.2 项目名称 2.引入依赖 2.1 网址输入mvnrepository.com进入maven中央仓库->地址…...

Three.js 材质的 blending

Three.js 材质的 blending // blending modes export type Blending | typeof NoBlending| typeof NormalBlending| typeof AdditiveBlending| typeof SubtractiveBlending| typeof MultiplyBlending| typeof CustomBlending;// custom blending destination factors export t…...

关于pcl 给new出的数据赋值报错问题

pcl::PointCloud<pcl::PointXYZ>::Ptr cloud (new pcl::PointCloud<pcl::PointXYZ>); for (size_t i 0; i < cloud->points.size (); i) //填充数据 { cloud->points[i].x 1024 * rand () / (RAND_MAX 1.0f); cloud->points[i].y 1024…...

window11 更改 vscode 插件目录,释放C盘内存

由于经常使用vscode开发会安装一些代码提示插件&#xff0c;然后C盘内容会逐渐缩小&#xff0c;最终排查定位到vscode。这个吃内存不眨眼的家伙。 建议&#xff1a;不要把插件目录和vscode安装目录放在同一个位置&#xff0c;不然这样vscode更新后&#xff0c;插件也会消失。 v…...

【PyQt学习篇 · ⑥】:QWidget - 事件

文章目录 事件消息显示和关闭事件移动事件调整大小事件鼠标事件进入和离开事件鼠标按下和释放事件鼠标双击事件鼠标按下移动事件 键盘事件焦点事件拖拽事件绘制事件改变事件右键菜单输入法 事件转发机制案例一案例二案例三 事件消息 显示和关闭事件 showEvent(QShowEvent)方法…...

Vue、jquery和angular之间区别

aVue、jquery、angular之间区别 angular与jquery区别angular和Vue angular与jquery区别 三个版本的输入数据绑定&#xff0c;都是单页面应用。 Angular <body ng-app><input type"text" ng-model"name"><p>{{name}}</p></body…...

MATLAB算法实战应用案例精讲-【图像处理】机器视觉(基础篇)(六)

目录 前言 几个高频面试题目 工业相机与普通相机的差别 一、 工业相机与普通相机的区别...

硬件知识积累 RS232 接口

1. RS232 是什么 RS-232标准接口&#xff08;又称EIA RS-232&#xff09;是常用的串行通信接口标准之一&#xff0c;它是由美国电子工业协会(Electronic Industry Association&#xff0c;EIA)联合贝尔系统公司、调制解调器厂家及计算机终端生产厂家于1970年共同制定&#xff0…...

机器人入门(四)—— 创建你的第一个虚拟小车

机器人入门&#xff08;四&#xff09;—— 创建你的第一个虚拟小车 一、小车建立过程1.1 dd_robot.urdf —— 建立身体1.2 dd_robot2.urdf —— 添加轮子1.3 dd_robot3.urdf —— 添加万向轮1.4 dd_robot4.urdf —— 添加颜色1.5 dd_robot5.urdf —— 添加碰撞检测(Collision …...

部署K8S

防火强的初始化&#xff1a; [rootk8s-node-12 ~]# systemctl stop firewalld NetworkManager [rootk8s-node-12 ~]# systemctl disable firewalld NetworkManager Removed symlink /etc/systemd/system/multi-user.target.wants/NetworkManager.service. Removed symlink /et…...

[NSSCTF 2nd] web刷题记录

文章目录 php签到MyBox非预期解预期解 php签到 源代码 <?phpfunction waf($filename){$black_list array("ph", "htaccess", "ini");$ext pathinfo($filename, PATHINFO_EXTENSION);foreach ($black_list as $value) {if (stristr($ext, …...

MyBatis获取参数值的两种方式(重点)

文章目录 简介单个字面量类型的参数多个字面量类型的参数map集合类型的参数实体类类型的参数使用Param标识参数总结 简介 MyBatis获取参数值的两种方式&#xff1a;${}和#{}${}的本质就是字符串拼接&#xff0c;#{}的本质就是占位符赋值${}使用字符串拼接的方式拼接sql&#x…...

Cesium弹窗可随地图移动

目录 项目地址实现效果实现方法 项目地址 https://github.com/zhengjie9510/webgis-demo 实现效果 实现方法 handler new Cesium.ScreenSpaceEventHandler(viewer.scene.canvas) handler.setInputAction((click) > {if (listener) {listener()listener undefinedthis.v…...

MySQL WITH AS及递归查询

MySQL WITH AS及递归查询 WITH AS 官网&#xff1a;WITH 是 SQL 中的一个关键字&#xff0c;用于创建临时表达式&#xff08;也称为 Common Table Expression&#xff0c;CTE&#xff09;&#xff0c;它允许你在一个查询中临时定义一个表达式&#xff0c;然后在后续的查询中引…...

Harbor私有镜像仓库搭建

本文基于&#xff1a;https://zhuanlan.zhihu.com/p/143779176 1.环境准备 IP&#xff1a;192.168.10.136/24 操作系统:centos7 2.安装Docker、Docker-compose 2.1安装Docker-CE $ wget https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo -O /etc/yum.re…...

线段树 区间赋值 + 区间加减 + 求区间最值

线段树好题&#xff1a;P1253 扶苏的问题 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) 区间赋值 区间加减 求区间最大。 对于区间赋值和区间加减来说&#xff0c;需要两个懒标记&#xff0c;一个表示赋值cover&#xff0c;一个表示加减add。 区间赋值的优先级大于区间加…...

大模型之十九-对话机器人

大语言模型的最早应用是Chatbot&#xff0c;其实我最早接触语义理解在2014年&#xff0c;2014年做智能音箱的时候&#xff0c;那时也是国内第一批做智能音箱的&#xff0c;在现在看起来当时的智能音箱比较傻&#xff0c;很多问题无法回答&#xff0c;长下文效果也不好&#xff…...

『力扣刷题本』:删除排序链表中的重复元素

一、题目 给定一个已排序的链表的头 head &#xff0c; 删除所有重复的元素&#xff0c;使每个元素只出现一次 。返回 已排序的链表 。 示例 1&#xff1a; 输入&#xff1a;head [1,1,2] 输出&#xff1a;[1,2]示例 2&#xff1a; 输入&#xff1a;head [1,1,2,3,3] 输出&am…...

Android S从桌面点击图标启动APP流程 (六)

系列文章 Android S从桌面点击图标启动APP流程 (一)Android S从桌面点击图标启动APP流程 (二) Android S从桌面点击图标启动APP流程 (三) Android S从桌面点击图标启动APP流程 (四) Android S从桌面点击图标启动APP流程 (五) Android 12的源码链接&#xff1a; android 1…...

小白也能玩转的AI语音合成:超级千问语音世界快速体验报告

小白也能玩转的AI语音合成&#xff1a;超级千问语音世界快速体验报告 1. 初识超级千问语音世界 第一次打开超级千问语音世界&#xff0c;我仿佛穿越回了童年玩红白机的时代。复古的像素风界面、跳跃的蘑菇按钮、会移动的小乌龟&#xff0c;这哪里是AI工具&#xff0c;分明是个…...

三步打造清爽Mac菜单栏:Dozer终极隐藏方案

三步打造清爽Mac菜单栏&#xff1a;Dozer终极隐藏方案 【免费下载链接】Dozer Hide menu bar icons on macOS 项目地址: https://gitcode.com/gh_mirrors/do/Dozer 还在为Mac菜单栏上拥挤不堪的图标感到困扰吗&#xff1f;想要一个简洁高效的工作界面&#xff1f;Dozer正…...

黑丝空姐-造相Z-Turbo应用场景:快速生成创意配图,提升内容创作效率

黑丝空姐-造相Z-Turbo应用场景&#xff1a;快速生成创意配图&#xff0c;提升内容创作效率 1. 镜像概述与核心价值 黑丝空姐-造相Z-Turbo是一款基于Xinference部署的文生图模型服务&#xff0c;专门针对特定风格图片生成进行了优化。该镜像通过gradio提供了直观的Web界面&…...

终极指南:如何在5分钟内完成你的第一个React Native动画模态框

终极指南&#xff1a;如何在5分钟内完成你的第一个React Native动画模态框 【免费下载链接】react-native-modal An enhanced, animated, customizable Modal for React Native. 项目地址: https://gitcode.com/gh_mirrors/re/react-native-modal React Native动画模态框…...

DeerFlow免运维部署:自动日志监控与服务启动检测

DeerFlow免运维部署&#xff1a;自动日志监控与服务启动检测 1. 认识你的深度研究助理&#xff1a;DeerFlow 想象一下&#xff0c;你有一个不知疲倦的研究助手。它能帮你搜索全网信息、分析复杂数据、撰写专业报告&#xff0c;甚至还能把枯燥的研究结果变成一段生动的播客。听…...

Android 性能优化:内存泄漏排查与解决

Android性能优化&#xff1a;内存泄漏排查与解决 在Android开发中&#xff0c;性能优化是提升用户体验的关键环节&#xff0c;而内存泄漏则是常见却容易被忽视的问题。内存泄漏会导致应用占用内存持续增加&#xff0c;最终引发卡顿、崩溃甚至被系统强制终止。如何高效排查与解…...

Pixel Mind Decoder 效果惊艳展示:多语言文本情绪解码对比

Pixel Mind Decoder 效果惊艳展示&#xff1a;多语言文本情绪解码对比 1. 情绪解码技术的新突破 在数字沟通日益频繁的今天&#xff0c;准确理解文字背后的情绪成为AI领域的重要挑战。Pixel Mind Decoder作为新一代多语言情绪分析工具&#xff0c;通过深度学习模型实现了对文…...

2025年3月AI领域核爆录:从模型开源战争到智能体价值重估

2025年3月AI领域核爆录&#xff1a;从模型开源战争到智能体价值重估 如果AI是一场马拉松&#xff0c;那么2025年3月就是全员冲刺的最后一公里。 这个月&#xff0c;历史的轴线被剧烈地扭动&#xff0c;科技的叙事以周为单位改写。它不再关乎单一的“突破”&#xff0c;而关乎生…...

【Docker】容器生命周期管理:从优雅停止到高效清理的实战技巧

1. 为什么需要关注容器生命周期管理&#xff1f; 第一次接触Docker时&#xff0c;很多人会把容器当成"轻量级虚拟机"来用。直到某天深夜&#xff0c;我的生产环境突然报警——磁盘空间爆满了。排查后发现&#xff0c;原来过去三个月创建的测试容器都没清理&#xff0…...

深入剖析Dynamic-Datasource:迭代器模式在数据源扩展中的完整实现指南

深入剖析Dynamic-Datasource&#xff1a;迭代器模式在数据源扩展中的完整实现指南 【免费下载链接】dynamic-datasource dynamic datasource for springboot 多数据源 动态数据源 主从分离 读写分离 分布式事务 项目地址: https://gitcode.com/gh_mirrors/dy/dynamic-dataso…...