首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Mybatis中的resultMap和resultType区别

Mybatis MyBatis中在查询进行select映射的时候,返回类型可以用resultType,也可以用resultMap,resultType是直接表示返回类型的,而resultMap则是对外部...所以其实MyBatis的每一个查询映射的返回类型都是ResultMap,只是当提供的返回类型属性是resultType的时候,MyBatis对自动的给把对应的值赋给resultType所指定对象的属性。...②当提供的返回类型是resultMap时,因为Map不能很好表示领域模型,就需要自己再进一步的把它转化为对应的对象,这常常在复杂查询中很有作用。...resultMap上,外部resultMap的type属性表示该resultMap的结果是一个什么样的类型,这里是Blog类型,那么MyBatis就会把它当作一个Blog对象取出。...简单查询的resultMap的写法就是这样的。 基本映射 :(resultType)使用resultType进行输出映射,只有查询出来的列名和实体类中的属性名一致,该列才可以映射成功。

88130

MyBatis 中 ResultType 和 ResultMap 的区别

使用resultType进行输出映射,只有查询出来的列名和pojo中的属性名一致,该列才可以映射成功。...如果查询出来的列名和pojo的属性名不一致,通过定义一个resultMap对列名和pojo属性名之间作一个映射关系。...pojo中添加一个list,list中为订单明细表的属性,在mapper.xml中采用如下的处理方式: resultMap type="com.mybatis.po.Orders" id="OrdersAndOrderDetailResultMap...:将关联查询到多条记录映射到com.mybatis.po.Orders哪个属性 ofType:指定映射到list集合属性中pojo的类型 --> MyBatis的每一个查询映射的返回类型都是ResultMap,只是当提供的返回类型属性是resultType的时候,MyBatis会自动把对应的值赋给resultType所指定对象的属性。

7.4K20
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Mybatis:resultMap的使用总结

    /index.html resultMap是Mybatis最强大的元素,它可以将查询到的复杂数据(比如查询到几个表中数据)映射到一个结果集当中。...映射到pojo对象的一个属性(须为type定义的pojo对象中的一个属性)"/> pojo的一个对象属性" javaType="pojo关联的pojo对象...ofType="集合中的pojo对象"> 中pojo对象对应的表的主键字段" jdbcType="字段类型" property="集合中pojo对象的主键属性" /...> 的字段" jdbcType="字段类型" property="集合中的pojo对象的属性" /> collection> resultMap...> 二、商品pojo类添加属性集合: 一个商品会有一些属性,现在需要将查询出的商品属性添加到商品对象中,首先需要在原商品pojo类的基础上中添加属性的集合: /** * 属性集合 *

    36010

    MyBatis Plus - xml中如何使用autoResultMap构造的ResultMap

    MyBatis Plus有一个很大的缺陷,就是insert和select的时候使用的ResultMap是不同的,修复的办法就是在实体类上增加注解@TableName(autoResultMap = true...Id获取Person的方法,与MyBatis-Plus中的selectById相同的功能(但是不能使用autoResultMap生成的ResultMap). */ @Select("SELECT...* FROM person WHERE id=#{id}") Person selectOneById(int id); } 自定义方法拿不到一些字段 因为Person中的orgIds和hobbies...("mybatis-plus_Person") /** * 设置了ResultMap为`mybatis-plus_Person`后就可以拿到正确的值. */ @ResultMap("mybatis-plus_Person...实体类名} 个人理解 MyBatis Plus本身并不是一个动态的ORM,而只是在mybatis初始化的时候,为mybatis提供常用的SQL语句,resultMap设置,并不会改变MyBatis本身的行为

    8.5K30

    后端技术:mybatis中resultMap用法示例笔记

    1、概念 resultMap属于mybatis返回操作结果的一个标签,可以用来映射select查询出来结果的集合,主要作用是将实体类中的字段与数据库表中的字段进行关联映射。...2、使用场景 2.1 属性映射 当数据库字段和项目中的实体属性不一致时,可以使resultMap进行数据库字段和实体类属性的映射关系 比如: column="id" jdbcType="integer...3、总结 resultMap用途主要有一下两点: 1、数据库字段和Java类属性映射 2、实现复杂的model类的查询 model中包含实体类使用关键字:association 的方法不在当前xml里面,需要指明完整的mapper路径 my.springboot.mybatis.dao.UserInfoMapper.get --> </association...* from t_hobby model中包含集合使用:collection 关键代码 resultMap id="userVOMap" type="my.springboot.mybatis.model.UserVO

    67020

    mybatis的resultType integer(resultmap标签详解)

    大家好,又见面了,我是你们的朋友全栈君。 在官方文档中对resultType做了如下介绍:从这条语句中返回的期望类型的类的完全限定名或别名。...注意如果是集合情形,那应该是集合可以包含的类型,而不能是集合本身。使用 resultType 或 resultMap,但不能同时使用。...mybatis中resultType可选类型: 1,java的基础类型及其包装类int,double和java.lang.Integer,java.lang.Double等 2,实体类,自己定义的实体类...3,map类型,如果使用resultMap这里可以使用自定义map,本文只介绍resultType 4,集合,即返回的是一个List集合,其中该集合的类型可以为1,2,3中提到的类型 基础类型demo...List,这里只展示了实体类集合,只要返回的值是多条数据都是集合,集合类型就是resultType中的值。

    2.8K10

    Mybatis源码-XXXmapper.xml中的resultMap标签解析过程

    Mybatis源码-XXXmapper.xml中的resultMap标签解析过程 前提:之前讲过Spring在解析applicationcontext.xml会将该配置文件中所有的bean标签注册成BeanDefinition...接口的,并实现了接口的afterPropertiesSet方法,证明在Spring和Mybatis的整合中,Spring启动实例化时就会进行XXXmapper.xml文件的解析。...下面我们就先看看Mybatis是这么去解析resultMap>标签的。为了更好的演示效果,下面我先贴出一个简单AdminMapper.xml配置文件。...>标签的时候,首先会以数组的形式拿到所有resultMap>标签,并循环遍历方式一个一个的去解析,这里我只配置了一个resultMap>,所以数组中只有一个元素。...从上面的源代码和类图发现,其实最终就是将所有的resultMap>中的配置属性解析包装成ResultMap,并将保存后的实体注册到大管家(Configuration)中,主要目的就是为了之后大管家能在使用的时候直接从内存中获取对应的配置信息

    1.1K30

    mybatis的resultMap完美解析(含github实例)!!!

    作为面向对象的语言, Java 中的的对象是根据类定义创建的。 类之间的引用关系可以认为是嵌套的关系。...在 mybatis 中, resultMap 节点定义了结果集和结果对象(JavaBean)之间的映射规则。 本文主要讲解的是 resultMap 的解析。...更多详情, 请参考: https://www.cnblogs.com/homejim/p/9833863.html 1.2、结果集映射类ResultMap ResultMap 对应的是结果集 中的一个结果集...with id '" + extend + "'"); } // 从 configuration 中获取继承的结果集 ResultMap resultMap = configuration.getResultMap...通过代码生成器生成 XML 和 Mapper。 添加结果集 ? 对应的 sql ? 则最后解析出的结果 ? 使用示例 https://github.com/homejim/mybatis-cn 结束

    2.2K30

    Mybatis Mapper.xml 配置文件中 resultMap 节点的源码解析

    类型转换源码分析 Mybatis 解析配置文件的源码解析 前言 在上篇文章 Mybatis 解析 SQL 源码分析一 介绍了 Maper.xml 配置文件的解析,但是没有解析 resultMap 节点...在使用 Mybatis 的时候,都会使用resultMap节点来绑定列与bean属性的对应关系,但是一般就只会使用其简单的属性,他还有一些比较复杂的属性可以实现一些高级的功能,在没查看源码之前,我也只会简单的使用..." resultMap="addressMap"/> resultMap> resultMap id="addressMap" type="mybatis.pojo.Address...; // 记录了映射关系中 不带有contructot节点的的映射关系 private List propertyResultMappings; // column...节点的 ResultMap 对象并添加到 ResultMap 集合中。

    2.1K40

    【MyBatis框架点滴】——MyBatis输出映射

    用resultType指定输入参数的类型为pojo时,有三种情况:   1、查询出来的列名与pojo中的属性名完全一致,结果会创建pojo对象,映射成功。   ...resultMap ----   上面resultType指定输出类型为pojo时,查询结果集的列名可能与pojo的字段不一致,因此可以使用resultMap为列名和pojo的字段之间作一个映射关系。...比如上面的第2中情况,用resultType指定输出类型为pojo时,查询出来的列名与pojo中的属性名部分一致,查询结果会自动映射为pojo对象,但只有部分属性会有值。...可以利用resultMap为其余不对应的列名与字段建立映射关系,使最终查询到的每列的值都可以一 一对应到pojo对象中。   映射文件: 的列名和pojo的属性名不一致,通过定义一个resultMap对列名和pojo属性名之间作一个映射关系。

    49120

    ResultMap和ResultType在使用中的区别

    因此对于单表查询的话用resultType是最合适的。但是,如果在写pojo时,不想用数据库表中定义的字段名称,也是可以使用resultMap进行处理对应的。...resultMap:当使用resultMap做SQL语句返回结果类型处理时,通常需要在mapper.xml中定义resultMap进行pojo和相应表字段的对应。...-- 订单查询关联用户的resultMap       将整个查询的结果映射到cn.itcast.mybatis.po.Orders中        -->       resultMap type=...>   resultMap对于一对一表连接的处理方式通常为在主表的pojo中添加嵌套另一个表的pojo,然后在mapper.xml中采用association节点元素进行对另一个表的连接处理。...-- 订单查询关联用户的resultMap       将整个查询的结果映射到cn.itcast.mybatis.po.Orders中        -->   resultMap type="cn.itcast.mybatis.po.Orders

    1.8K10

    Java中的POJO是什么?

    大家好,又见面了,我是你们的朋友全栈君。 1.介绍 在这个简短的教程中,我们将研究“普通Java对象”(Plain Old Java Object)的定义,简称POJO。...我们将看看POJO与JavaBean的比较,以及如何将POJO转换为JavaBean。 2.普通java对象 2.1 何为普通java对象?...当我们谈论POJO时,我们所描述的是一个简单的类型,没有任何特定框架的引用。POJO对我们的属性和方法没有命名约定。 让我们创建一个基本的员工POJO。...JavaBean仍然是一个POJO,但围绕如何实现它引入了一组严格的规则: 访问级别—要求属性是私有的,并暴露公开getter和setter方法。...setter,其中大部分可能是不必要的零参数构造函数——我们经常需要构造函数中的参数来确保对象以有效状态实例化,但是JavaBean标准要求我们提供零参数构造函数。

    1.3K10

    Java Mybatis使用resultMap时 属性赋值顺序错误的坑

    中是这样写的 resultMap id="BaseResultMap" type="...> 可以发现ids加的位置是不一样的,实体类中在outputField属性下面,但resultMap中在其上面。...然后测试数据中ids字段为null,查询出来时却发现ids的值和outputField的值是一样的。但如果ids的字段有值,就可以正确赋值。...mybatis在生成目标类进行映射时,会先检查构造函数声明情况,但 如果Data注解和Builder注解一块使用的话就只会生成全属性参数构造函数,不会有默认无参构造函数。...全属性构造函数的参数顺序是和类中属性声明顺序一致的 在把数据库字段映射到实体类的时候发现实体类没有默认无参构造函数,就会把数据库中的字段按照全属性构造函数参数的顺序依次赋值给实体类的属性。

    1.6K10
    领券