Mybatis的resultType的说明

MyBatis 中 resultType 的使用详解 - 正确:单行结果是 String --> 阅读详情

在Java中使用MyBatis进行开发时,关于标签中resultType属性是一个常见问题。
问题:Mybatis的查询结果为List<String>集合时,resultType应该定义成什么?
答案: 将resultType设置为java.util.List导致了错误,实际上应该指定为List中元素的具体类型。
resultType的2种使用场景:
1.基本类型、
2. List类型、

错位写法

<!--通过角色获取拥有该角色的人员-->
    <select id="getUserList" parameterType="java.lang.String" resultType="java.util.List">
        select
            sur.user_id
        from
            sys_user_role as sur
            left join
                sys_role as sr
            on
                sur.role_id = sr.role_id
        where
            sr.role_name = #{roleName}
    </select>

resultType="java.util.List"的类型是导致错误的原因!!!

上面是SQL查询,其中的resultType写成了类型为List。这样在实际运行的时候就会出现问题。resultType代表的是返回内容的具体类型,而不是List。

resultType常见的取值
1、基本类型 :resultType=基本类型
2、List类型: resultType=List中元素的类型
3、Map类型 : 就别用resultType给自己找麻烦,而用resultMap即可

接下来我们就来讲一下Mybatis中resultType与resultMap之间的关系和使用场景。

2.1 resultType
从select语句中返回的期望类型的类的完全限定名或别名。注意如果返回的是集合,那应该设置为集合包含的类型,而不是集合本身。可以使用 resultType 或 resultMap,但不能同时使用。

2.2 resultMap
从这条语句中返回的期望类型的类的完全限定名或别名。注意如果返回的是集合,那应该设置为集合包含的类型,而不是集合本身。可以使用 resultType 或 resultMap,但不能同时使用。

2.3 共同点
resultType与resultMap首先都是用来归纳查询类型sql的结果集,对查询结果进行你需要的结构描述。对于同一个select标签中二者不能共存。这一点对很多人来说很好理解。重要的是不同点和对应的使用场景。

2.4 二者分别的使用场景
对于查询结构需要返回的简单pojo,结果都可以映射到一致的hashMap上,换句话来说就是数据库列名可以精确匹配到pojo属性的。一般都用resultType。其实这里有一个隐含的构建机制。映射到resultType的结果都是MyBatis在幕后自动创建了一个resultMap来处理的。
简而言之,只要resultType能干的事情resultMap都能干。二者定位是:

resultType用来处理非常简单的结果集,就是列名能够与pojo属性匹配的的结果集。
如果你只需要查询一个班级的简单情况,那么用这个再合适不过了。

MOS管热阻的测量方法 实验室内如何测试mos管热阻 阅读详情

相关推荐

告别Colmap!在ROS2 Humble上,用Fast-LIVO2直接为3D Gaussian Splatting准备数据全流程

本文详细介绍了在ROS2 Humble环境下,使用Fast-LIVO2为3D Gaussian Splatting(3DGS)准备数据的全流程。通过优化Fast-LIVO2配置、实时数据同步机制和3DGS训练参数,显著提升了三维重建效率和质量,相比传统Colmap流程节省95%以上的预处理时间。适用于Ubuntu22.04系统,适合机器人及自动驾驶领域的三维重建应用。

weixin_28688385的博客 589

mybatis的resultType

        在官方文档中对resultType做了如下介绍:从这条语句中返回的期望类型的类的完全限定名或别名。注意如果是集合情形,那应该是集合可以包含的类型,而不能是集合本身。使用 resultType 或 resultMap,但不能同时使用。 mybatis中resultType可选类型: 1,java的基础类型及其包装类int,double和java.lang.Integer,java...

beidaol的专栏 1万+

GT-Power柴油机瞬态性能仿真与优化——基于EGR-VGT耦合控制策略【附案例】

本文探讨了GT-Power在柴油机瞬态性能仿真与优化中的应用,重点分析了EGR-VGT耦合控制策略的实际效果。通过案例研究展示了如何通过仿真优化提升柴油机的动力响应速度和排放性能,为车辆工程领域的工程师提供了实用的技术参考。

green的博客 763

Mybatis之resultType详解

resultType是sql映射文件中定义返回值类型,返回值有基本类型,对象类型,List类型,Map类型等。 resultType: 基本类型 :resultType=基本类型 List类型: resultType=List中元素的类型 Map类型 单条记录:resultType =map 多条记录:resultType ...

zw1_csdn的博客 2万+

OpenCV学习笔记(25)基于MFC和OpenCV的摄像机定标与立体匹配测试程序(20140505更新)

最近整理了一下这两年一直在用的摄像机定标与立体匹配测试程序,将代码进行了重构,界面也做了调整,分享出来方便有需要的朋友使用。当然我的编程能力有限,程序可能还有各种bug,请大家多多包涵。相关问题欢迎留言或email联系讨论,谢谢! ==================================================================================源码

晨宇思远 5万+

真题库系列之 CCF GESP 2025年12月认证 Python 1级真题含正确答案与解析

学生通过计算机基础知识的学习,了解计算机的构成与操作,以及计算机的发 展历程。通过编程基础知识以及语句的掌握,可以独立完成简单功能的顺序结构、 分支结构、循环结构的程序。

iCloudEnd的博客 319

Mybatis ResultType处理返回类型

需要使用注解才能使用map其实这个主要功能也不大 将就着用吧。

m0_63300795的博客 1万+

零基础入门Simulink——基于Simulink的MIMO-OFDM系统仿真建模示例

MIMO概述MIMO技术利用多个天线进行信号发送和接收,通过空间复用来提高数据传输速率,或通过空间分集来增强信号的可靠性。OFDM概述OFDM是一种将高速率数据流分成多个低速数据流并行传输的技术,每个子载波都采用调制方式(如BPSK、QPSK),并通过IFFT/FFT变换实现串并转换。MIMO-OFDM优势结合了MIMO的空间分集增益与OFDM对抗多径效应的能力,适用于宽带无线通信系统。提供了更高的数据速率和更好的频谱效率,是现代无线通信标准(如4G LTE、5G NR等)的核心技术之一。

amy_mhd的博客 891

Mybatis的查询结果为List<String>集合时,resultType应该定义成什么?

开发过程中经常用到mybatis,但是有些细节容易忘记,这里就做一个详细的笔记。 <!--通过角色获取拥有该角色的人员--> <select id="getUserList" parameterType="java.lang.String" resultType="java.util.List"> select sur.user_id from sys_user_role as sur

weixin_42965737的博客 7621

【ARM Trace32(劳特巴赫) 使用介绍 10 -- Trace32 scan dump 详细介绍】

将图 1-2 中扫描单元按照扫描移位模式连接起来,就构成了扫描测试中的基本结构,这里介绍下全扫描。全扫描就是多个扫描单元相连接,上一单元的扫描输出,连接到目前单元的扫描输入,目前单元的扫描输出连接到下一单元的扫描输入,以此类推,构成一条移位寄存器链,如图1-3 所示:图 1-3 全扫描这样的扫描结构,可通过一个串行输入端,将期望的数据存入移位寄存器链并观察运行结果。

CodingCos的博客 2034

【RT-DETR多模态融合改进】| 自研 多模态大核选择模块:MM_LSK,适配多模态图像信息融合

本文记录的利用改进的多模态大核选择模块(MM-LSK)优化RT-DETR,构建可见光-红外双模态目标检测网络。在遥感等大尺寸图像的可见光-红外双模态小目标检测任务中,单模态检测易受光照、云雾、背景干扰等因素影响,且小目标外观信息匮乏,无法仅基于单模态外观实现较好的识别,因此需要融合双模态互补特性与广泛的跨模态上下文信息进行辅助。

Limiiiing的博客 382

mybatis中的parameterType和resultType两个参数的说明

mybatis中的parameterType和resultType两个参数的指向: parameterType是锁定传入的参数的出身。在实体类对象中较为常用。 经常利用ognl表达式指向#{}内的参数,是对#{}内这种传入的赋值参数的出身做详细说明。 如:parameterType="com.aaa.domain.Group"且#{user.name},那么#{}内表示com包下的aaa包下的do...

樱吹雪 3979

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

mybatis里面Mapper的xml文件中resultType值说明

①返回一般数据类型的值 比如根据id或者字段条件查询获取表中的某一个字段值 User Sel(int id); //根据id查询 SQL映射文件 <select id="Sel" resultType="java.lang.String"> //注意这个写了类全名 select username from user_test where id = #{id} <...

Rocky 3万+

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

mybatis中resultMap与resultType的使用说明

一、mapper文件内容如下:<mapper namespace="com.miapsoft.dao.UserDao"> <resultMap type="User" id="UserMapper"> <result property="id" column="ID" /> <result property="name" colu...

weixin_34055787的博客 165

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

MyBatis中resultType写法说明

一、返回一般数据类型 根据 id 属性获得数据库中的某个字段值。 // 根据 id 获得数据库中的 username 字段的值 String getEmpNameById(Integer id);12 ---------------------------------------------------------------------------------------- <!-- 指定 resultType 返回值类型时 String 类型的,

qq_42027055的博客 1892

java接口查询数据类型_MyBatis查询结果resultType返回值类型的说明

一、返回一般数据类型比如要根据 id 属性获得数据库中的某个字段值。mapper 接口:// 根据 id 获得数据库中的 username 字段的值String getEmpNameById(Integer id);SQL 映射文件:select username from t_employee where id = #{id}二、返回 JavaBean 类型比如根据某个字段获得数据库中的信息,把...

weixin_35998980的博客 1132

Mybatis中的resultMap和resultType区别

基本映射 :(resultType)使用resultType进行输出映射,只有查询出来的列名和实体类中的属性名一致,该列才可以映射成功。(数据库,实体,查询字段,这些全部都得一一对应) 高级映射 :(resultMap) 如果查询出来的列名和实体类的属性名不一致,通过定义一个resultMap对列名和实体类属性名之间作一个映射关系。(高级映射,字段名称可以不一致,通过映射来实现 ...

wjw_de_java的博客 1617

java--mybatis的resultType

mybatis select标签的resultType属性指的是数据库中查到的数据每一条的类型是什么 如果传的是map,如果map<String, String>,resultType是String

a1317154549的博客 281

ResultMap与ResultType的区别

养成习惯,先赞后看!!! 两者的区别主要就是在返回类型上. 在mybatis中我们可能返回的数据类型主要就是下面这两种: 单个集合----ResultType,ResultMap 多重集合----ResultMap 那么什么样的数据才叫单个集合,什么样的数据才叫多重集合呢?我们通过下面两张图,大家就能理解了: 单个集合: 多重集合: 看完上面两张图大家就能基本知道他们的差别了,那么他们俩的具体使用场景又是怎样的呢? 举两个例子大家就懂了 在 获取所有用户的数据 的时候显然我们只需要获得用户信

lovely__RR的博客 1128

Mybatis resultType

resultType="java.lang.String" 当select的字段为单一类型的字段时可以使用resultType resultMap可以解决大部分select,但偶尔有特殊情况需要resultType   例:select的结果只能使用String类型接收时,只能使用resultType...

Zmgtt的博客 372

mybatis中的sql映射文件(1)—resultType

mybaits中sql映射文件是一个xml文件,里面记录的和数据库交互的各种信息,相当于sql语句,在写这些语句的时候,遇到很多不同的参数,比如resultType,这篇文章简单介绍下resultType。resultType是返回的类型。实际上是resultType将查询到结果映射封装成pojo类型中,前提是该pojo类的属性名和查询到的数据库表的字段名一致。这种映射封装mybatis帮我们自动做好了,不需要我们自己考虑。所以看起来我们是我们查询一些数据,然后返回类型是pojo。

城南蝈蝈 762

MyBatis ResultType核心解析

在当今的软件开发领域,MyBatis 作为一款优秀的持久层框架,以其简洁的配置和强大的功能,被广泛应用于各种项目中。然而,在实际应用中,我们常常会遇到数据查询的问题,如何高效、准确地获取所需数据,成为了开发者关注的焦点。这就引出了 MyBatis 中的一个核心知识点——resultType。在 MyBatis 中,resultType 用于指定查询结果的类型,它对于确保数据正确映射到实体类具有重要意义。想象一下,在一个电商系统中,我们需要查询某个商品的信息,并将其映射到对应的实体类中。

我是Java程序员廖志伟,感谢朋友们的支持! 842

list解析 mybatis_mybatis学习(七)——resultType解析

resultType是sql映射文件中定义返回值类型,返回值有基本类型,对象类型,List类型,Map类型等。现总结一下再解释总结:resultType:1、基本类型 :resultType=基本类型2、List类型: resultType=List中元素的类型3、Map类型 单条记录:resultType =map多条记录:resultType =Map中value的类型1、对象类型...

weixin_39629188的博客 1136

Mybatis的resultType

使用mybatis去查询数据时,没有指定resultType,mybatis无法返回正常结果,当然在web中并没有出现报错,所以有点坑自己了,所以需要使用如下配置: select * from tbl_plugins where id in <foreach item="data" collection="array" open="(

井底之蛙 2695

关于MyBatis的Mapper.xml文件中resultType的问题

写在前面 最近在实际业务开发的时候还是发现了一些问题的,现在特总结一下。 问题来源 关于mybatis内部返回查找或者组查找是返回list类型的问题: mybatis会自动把查找结果放入到一个list中的,所以你的resultType应该是写的list集合内部的元素的类型,而不是List类型。 例如:在一个ids表中只有id列,且数据类型为Long;那么范围查找的语句可以是: select * from ids where id>=19 and id<=99; 这个结果自动返回的就是一个Lis

weixin_38107316的博客 3034
上一篇: Windows 的 docker 删除容器后 WSL2 磁盘空间不释放的问题
下一篇: 如何用java发带有换行的email
大树叶
博客等级 码龄12年 1171粉丝 664原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值