Mybatis:Mybatis的各种查询功能(5)

news2024/12/27 13:40:53

Mybaits笔记框架:https://blog.csdn.net/qq_43751200/article/details/128154837

Mybatis的各种查询功能

  • 1. 查询一个实体类对象
  • 2. 查询一个List集合
  • 3. 查询单个数据
  • 4. 查询一条数据为map集合
  • 5. 查询多条数据为map集合
    • 方法一
    • 方法二

1. 查询一个实体类对象

SelectMapper接口

/**
 * 根据用户id查询用户信息
 注意:resultType="User"
 * @param id
 * @return
 */
User getUserById(@Param("id") int id);

SelectMapper.xml

   <!--User selectById(@Param("id") int id);-->
    <select id="selectById" resultType="User">
        select * from t_user where id = #{id};
        <!-- select * from t_user where id = '{id}' -->
    </select>

测试方法

    @Test
    public void testSelectById(){
        SqlSession sqlSession = SqlSessionFactoryUtils.getSqlSession();
        SelectMapper selectMapper = sqlSession.getMapper(SelectMapper.class);
        User user = selectMapper.selectById(18);
        System.out.println(user);
        sqlSession.close();
    }

在这里插入图片描述

2. 查询一个List集合

SelectMapper接口

/**
 * 查询所有用户信息
 * 注意:resultType="User", 指定泛型
 * @return
 */
List<User> getUserList();

SelectMapper.xml

<!-- List<User> getUserList(); 特别注意,返回值为List集合的时候,resultMap也是User类型,指定泛型 -->
    <select id="getUserList" resultType="User">
        select * from t_user;
    </select>

测试方法

    @Test
    public void testGetUserList(){
        SqlSession sqlSession = SqlSessionFactoryUtils.getSqlSession();
        SelectMapper selectMapper = sqlSession.getMapper(SelectMapper.class);
        List<User> userList = selectMapper.getUserList();
        for(User user : userList){
            System.out.println(user);
        }
        sqlSession.close();
    }

在这里插入图片描述

3. 查询单个数据

SelectMapper接口

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

在这里插入图片描述
在这里插入图片描述

SelectMapper.xml

    <!-- int getCount(); -->
    <select id="getCount" resultType="int">
        select count(id) from t_user;
    </select>

测试方法

    @Test
    public void testGetCount(){
        SqlSession sqlSession = SqlSessionFactoryUtils.getSqlSession();
        SelectMapper selectMapper = sqlSession.getMapper(SelectMapper.class);
        int count = selectMapper.getCount();
        System.out.println("t_user表中一共有" + count + "条数据");
        sqlSession.close();
    }

在这里插入图片描述

4. 查询一条数据为map集合

SelectMapper接口

    /**
     * 根据用户id查询用户信息为map集合
     * @param id
     * @return
     */
    Map<String, Object> getUserToMap(@Param("id") int id);

SelectMapper.xml

<!-- Map<String, Object> getUserToMap(@Param("id") int id); -->
    <select id="getUserToMap" resultType="map">
        select * from t_user where id = #{id}
    </select>

测试方法

    @Test
    public void testGetUserToMap(){
        SqlSession sqlSession = SqlSessionFactoryUtils.getSqlSession();
        SelectMapper selectMapper = sqlSession.getMapper(SelectMapper.class);
        Map<String, Object> userToMap = selectMapper.getUserToMap(18);
        System.out.println(userToMap);
        sqlSession.close();
    }

在这里插入图片描述

5. 查询多条数据为map集合

方法一

SelectMapper接口

/**  
 * 查询所有用户信息为map集合  
 * @return  
 * 将表中的数据以map集合的方式查询,一条数据对应一个map;若有多条数据,就会产生多个map集合,此时可以将这些map放在一个list集合中获取  
 * 这时候的resultType="map",指定泛型为Map类型
 */  
List<Map<String, Object>> getAllUserToMap();

SelectMapper.xml

    <select id="getUserToMaps" resultType="map">
        select * from t_user;
    </select>

测试方法

   @Test
    public void testGetUserToMaps(){
        SqlSession sqlSession = SqlSessionFactoryUtils.getSqlSession();
        SelectMapper selectMapper = sqlSession.getMapper(SelectMapper.class);
        List<Map<String, Object>> userToMaps = selectMapper.getUserToMaps();
        for(Map<String, Object> map : userToMaps){
            System.out.println(map);
        }
        sqlSession.close();
    }

在这里插入图片描述

方法二

SelectMapper接口

/**
 * 查询所有用户信息为map集合
 * @return
 * 将表中的数据以map集合的方式查询,一条数据对应一个map;若有多条数据,就会产生多个map集合,并且最终要以一个map的方式返回数据,此时需要通过@MapKey注解设置map集合的键,值是每条数据所对应的map集合
 */
@MapKey("id")
Map<String, Object> getAllUserToMap();

SelectMapper.xml

<!--Map<String, Object> getAllUserToMap();-->
<select id="getAllUserToMap" resultType="map">
	select * from t_user
</select>

测试方法

    @Test
    public void testGetUserToMaps(){
        SqlSession sqlSession = SqlSessionFactoryUtils.getSqlSession();
        SelectMapper selectMapper = sqlSession.getMapper(SelectMapper.class);
        Map<String, Object> userToMaps = selectMapper.getUserToMaps();
        System.out.println(userToMaps);

        Set<Map.Entry<String, Object>> entries = userToMaps.entrySet();
        for(Map.Entry<String, Object> entry : entries){
            System.out.println(entry);
        }
        sqlSession.close();
    }

在这里插入图片描述

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/55775.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【图像融合】小波变换彩色图像融合(带面板)【含GUI Matlab源码 782期】

⛄一、小波变换彩色图像融合简介 0 引言 目前在各种图像采集与分析系统中已大量使用彩色CCD数码相机, 但是由于其视野有限, 常常获得的只是局部图像, 如果要保证一定的分辨率的前提下采集整体彩色图像, 只能先拍摄具有重叠部分的局部彩色图像, 随后对其进行手工或自动拼接的方…

29岁才转行软件测试,目前32了,我的一些经历跟感受

按惯例&#xff0c;先说下我基本情况。我是90年的&#xff0c;算是最早的90后&#xff0c;现在跟你介绍的时候还恬不知耻的说我是90后&#xff0c;哈哈&#xff0c;计算机专业普通本科毕业。在一个二线城市&#xff0c;毕业后因为自身能力问题、认知水平问题&#xff0c;再加上…

基于 Delphi 的前后端分离:之二

本系列文章之二 # 摘要 上一篇文章&#xff0c;我在页面里面&#xff0c;使用 JS 向服务器端获取数据&#xff0c;然后修改页面元素显示数据成功。接下来&#xff0c;真正的页面&#xff0c;是需要格式的&#xff0c;要好看。如何做到&#xff1f; # 开始 # 网页模板和 Del…

用于安装和维护光纤单模和多模的光纤网络测试套件

VIAVI 唯亚威OMK-3xV2 光纤测试套件是一系列小巧且坚固耐用的仪表&#xff0c;用于安装和维护单模 (SM) 和多模 (MM) 光纤网络。所有测试套件均配备光功率计&#xff0c;以及专用于光功率、插入损耗测量和连续性检查的双波长或四波长功率计光源。 优点 随时可用 - 超高可靠性和…

四大主流BI工具的对比分析!

一、简介 1.Tableau Tableau 是一个 BI 分析和可视化工具。它为分析数据和创建交互式可视化提供了强大的功能。Tableau 旨在支持复杂的数据科学和分析&#xff0c;让数据专家可以使用一系列可视化工具构建分析。 2.Power BI Power BI 是 Microsoft 的产品&#xff0c;因此它…

[附源码]Python计算机毕业设计SSM久宠宠物店管理系统(程序+LW)

项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; SSM mybatis Maven Vue 等等组成&#xff0c;B/S模式 M…

Spring MVC中的拦截器

在之前学习JAVAWEB 的时候&#xff0c;我们学习了过滤器的知识。过滤器的作用是保护请求的服务器资源&#xff0c;在请求资源被执行之前&#xff0c;如果请求地址符合拦截范围&#xff0c;则会先执行过滤器。过滤器的执行时机&#xff0c;是在Servlet之前执行的。但是在使用了S…

Java项目导入IDEA的流程配置及常见问题解决(持续更新中...)

Java项目导入IDEA的流程配置及常见问题解决 本文主要演示一个普通 java 项目导入IDEA的流程步骤及可能出现的问题、原因及解决办法。 本文使用的部分软件版本如下&#xff1a; IDEA 2018.3 JDK 1.8 Windows 1.导入Java Priject 导入之后可能发出现大面积红色&#xff0c;这…

StringTable

文章目录1. String的基本特性2. String的内存分配3. String的基本操作4.字符串的拼接操作5. intern()的使用6. G1中的String去重操作1. String的基本特性 2. String的内存分配 使用String的intern方法可以把字符串加入到字符串常量池。同时可以使用该方法来证明JDK8中字符串常量…

PL7022/PL7022B原厂双节/两节锂电池串联充电IC和保护IC

双节锂电池串联管理系列选型表&#xff1a; 型号 封装 功能 PL7022B SOT23-6 双节4.2V锂电池串联保护电路 PL7022 SOT23-6 双节4.35V锂电池串联保护电路 PL7501C ESOP8 升压型双节锂电池串联充电电路&#xff08;VIN:5V&#xff09; PL7222 ESOP8 降压型双节锂电…

ABC 分析法(帕累托分析法、2/8分析法)

在任何特定群体中&#xff0c;重要的因子通常只占少数&#xff0c;而不重要的因子则占多数&#xff0c;因此只要能控制具有重要性的少数因子即能控制全局。例如&#xff0c;在企业中&#xff0c;通常认为它80%的利润来自于20%的项目或重要客户&#xff1b;全球最富有的 20% 人口…

帮公司面试了一个33岁的程序员,只因这一个细节,被我一眼看穿是培训班出来的,没啥工作经验...

首先&#xff0c;我说一句&#xff1a;培训出来的&#xff0c;优秀学员大有人在&#xff0c;我不希望因为带着培训的标签而无法达到用人单位和候选人的双向匹配&#xff0c;是非常遗憾的事情。 最近&#xff0c;在网上看到这样一个留言&#xff0c;引发了程序员这个圈子不少的…

基于功能安全的车载计算平台开发:硬件层面

作为车载智能计算平台功能软件与系统软件的载体&#xff0c;硬件的失效可能直接导致功能软件输出不可信任的结果&#xff0c;从而违背安全目标。由于硬件故障在硬件生命周期中发生时间的随机性&#xff0c;在通过改善流程降低系统性失效的同时&#xff0c;ISO 26262功能安全标准…

Mysql的时间类型选定:Datetime,Timestamp,Bigint

1. 基本区别: 2. 其他特性: 1. TIMESTAMP是以utc格式存储,会自动检索当前时区对时间进行转换,而DATETIME不会。 2. 存入null时,TIMESTAMP会自动存储当前时间,而DATETIME存储null值。 3. 时间计算: DATETIME翻译为汉语即"时间戳",它是当前时间到 Unix元年(1…

RabbitMQ_消息的TTL与死信队列

什么是消息的TTL? TTL time to live&#xff0c;消息的TTL 消息的存活时间或过期时间 什么是死信队列&#xff1f; 当队列中的消息到达存活时间或过期时间后&#xff0c;若未设置死信队列&#xff0c;则该消息将被抛弃&#xff0c;反之则转入死信队列 死信队列 配置类 死…

Polygon zkEVM R1CS与Plonk电路转换

1. 引言 前序博客有&#xff1a; Polygon zkEVM的pil-stark Fibonacci状态机初体验Polygon zkEVM的pil-stark Fibonacci状态机代码解析rank-1 constraint system R1CS 由上图可知&#xff0c;zkEVM会借助SNARK来“验证&#xff08;&#xff08;验证STARK证明&#xff09;的SN…

博安生物再次冲刺港交所上市:负债规模高企,持续出现亏损

11月30日&#xff0c;山东博安生物技术股份有限公司&#xff08;下称“博安生物”&#xff09;再次向港交所递交招股书&#xff0c;准备在港交所主板上市。据贝多财经了解&#xff0c;博安生物曾于2022年5月13日递表&#xff0c;现已“失效”。 相较于此前招股书&#xff0c;博…

【图像分割】基于神经气体网络的图像分割与量化(Matlab代码实现)

&#x1f468;‍&#x1f393;个人主页&#xff1a;研学社的博客 &#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜…

了解抖音小程序的评级。为什么我的抖音小程序申请不了某个功能?

目录前言评级评级运营规范评级周期查看评级评级对应的权益小程序评级审核驳回场景信用分常见问题为什么我的小程序不能挂载短视频&#xff1f;前言 小程序评级体系是衡量小程序整体质量的参照&#xff0c;也是小程序获取对应权益的指南&#xff0c;旨在推动、鼓励开发者提升小…

matlab如何从信号中去除60 Hz Hum电源线噪声

美国和其他几个国家的交流电流以60赫兹的频率振荡。这些振荡经常会破坏测量值并且必须减去。 最近我们被客户要求撰写关于信号去噪数据的研究报告&#xff0c;包括一些图形和统计输出。 在存在60 Hz电源线噪声的情况下研究模拟仪器输入端的开环电压。电压以1 kHz采样。 lo…