首页
学习
活动
专区
工具
TVP
发布

Mybatis高级查询(一):resultMap与resultType

Mybatis高级查询(一) 在开始高级查询之前我们先来认识几个新的标签 resultMap与resultType resultType:将查询结果按照sql列名pojo属性名一致性映射到pojo中 适用场合...:***它可以将查询到的复杂数据(比如查询到几个表中的数据)映射到一个结果集中;需要单独定义resultMap,实现有点麻烦,如果对结果有特殊的需求,使用resultMap可以将关联查询映射pojo的属性中...resultMap可以实现延迟加载,resultType不能实现延迟加载 一对一查询的时候使用association标签使主表的pojo中嵌套另一个表的pojo,实现关联映射 一对多查询的时候使用collection...适用场合:一个订单表对应多个订单详情表;查询一个订单表,可以使用该标签把结果映射到list集合中 这里我们可以通过resultMap的一些标签和字段来进一步的认识他 <

1.1K30
您找到你想要的搜索结果了吗?
是的
没有找到

Mybatis 单表查询 - resultMap标签 - 多条件查询 - 模糊查询

Mybatis 单表查询 - resultMap标签 - 多条件查询 - 模糊查询 数据准备 # 数据准备 DROP TABLE IF EXISTS `user`; CREATE TABLE `user...标签 如果数据库返回结果的列名和要封装的实体的属性名完全一致的话用 resultType 属性 如果数据库返回结果的列名和要封装的实体的属性名有不一致的情况用 resultMap 属性 使用resultMap...如果数据库返回结果的列名和要封装的实体的属性名完全一致的话用 resultType 属性 在前面篇章中,我们编写查询的都是 select * from user 这样的查询,而查询的结果集字段名 都是对应...如果数据库返回结果的列名和要封装的实体的属性名有不一致的情况用 resultMap 属性 ① UserMapper接口 查询接口方法不需要改变,还是照样接收 List 作为查询的结果。...来定义查询结构集字段名 与 实体类属性名的 映射关系,从而成功读取数据

87830

Mybatis—查询resultMap-多表关联{association-collection}–延迟加载

resultMap resultMap: 结果映射。 自定义列名和java对象属性的对应关系。 常用在列名和属性名不同的情况。...用法: 1.先定义 resultMap标签, 指定列名和属性名称对应关系 2.在select标签使用resultMap属性,指定上面定义的resultMap的id值 <resultMap id=...多表关联处理结果集 resultMap元素中association,collection元素 association –复杂类型联合;许多查询结果合成这个类型 一对一结果映射-association,能引用自身...-- 查询所有的员工--> SELECT <include refid=...,按照设置延迟规则推迟对关联对象的select查询, 如在进行一对多查询的时候,只查询出一方,当程序中需要多方的数据时,mybatis再发出sql语句进行查询,这样子延迟加载就可以的减少数据库压力

1.3K20

Mybatis之ResultMap

Mybatis之ResultMap 本人独立博客https://chenjiabing666.github.io/ 实体类 通常实体类中的属性要和数据库表中的字段一致,包括类型,字段名称 因此我们在单表查询的时候不需要使用...指定实体类和表中的字段对应关系,但是如果我们在查询的时候使用了别名,或者属性字段和表的字段不一致,那么我们就需要用指定对应关系了 准备 创建一个User类 public...解决别名或者字段不对应的问题 如果实体类中的字段和表中的字段一致,但是查询结果中使用了别名,那么需要使用来设置对应关系 如果实体类中的字段和表中的字段不一致,那么返回的查询结果即使不使用别名也会不对应...>来解决多表之间的查询 后面的多表关联查询会讲到 总结 实体类中的属性是和表中的属性一致的,普通的java类或许不相同 如果查询返回的结果字段和java类中的属性字段一致,那么就不需要使用resultMap...,而是能够自动的对应上 如果返回查询结果字段和java类中的属性字段不一致,那么就需要使用resultMap来设置对应关系了

85750

MyBatis-resultMap参数

1、resultMap概述 resultMap 标签可以建立查询的字段名和实体类的属性名称不一致时建立对应关系。从而实现封装。 在 select 标签中使用 resultMap 属性指定引用即可。...同时 resultMap 可以实现将查询结果映射为复杂类型的 pojo,比如在查询结果映射对象中包括 pojo 和 list 实现一对一查询和一对多查询。...2、需求分析 查询数据库表(user)中的所有记录 3、案例实现 3.1、修改IUserDao.xml文件 注: resultMap中的属性: type 属性:指定实体类的全限定类名 id 属性:给定一个唯一标识,是给查询 select 标签引用用的。...resultMap中的标签: id 标签:用于指定主键字段 result 标签:用于指定非主键字段 column 属性:用于指定数据库列名 ​ property 属性:用于指定实体类属性名称 注意

29810

ResultMap与ResultType的区别

在mybatis中我们可能返回的数据类型主要就是下面这两种: 单个集合----ResultType,ResultMap 多重集合----ResultMap 那么什么样的数据才叫单个集合,什么样的数据才叫多重集合呢...举两个例子大家就懂了 在 获取所有用户的数据 的时候显然我们只需要获得用户信息即可了,并不需要在获取其他额外的数据....但是在 进行用户的角色校验 的时候,显然我们不仅需要获得该用户的相关信息,其次我们还需要获得该用户的角色信息,那么显然我们返回的数据就不能只包含用户信息,所以我们必须将数据封装成上述多重集合的形式,这样才能方便我们进行角色的校验...> 在分析代码之前,我们下来看一下该SQL语句执行之后,我们获得的数据是什么样的?...ResultMap定义一个名称即id,之后我们就需要定义ResultMap的type,这里的type是我们多重集合中最外层的实体对象,之后我们就需要定义该实体对象的主键即可,column指的是我们定义的返回数据中的字段名

1K30

MyBatis魔法堂:ResultMap详解

一、前言                                  MyBatis是基于“数据库结构不可控”的思想建立的,也就是我们希望数据库遵循第三范式或BCNF,但实际事与愿违,那么结果集映射就是...二、从SQL查询结果到领域模型实体                     在深入ResultMap标签前,我们需要了解从SQL查询结果集到JavaBean或POJO实体的过程。   1....通过JDBC查询得到ResultSet对象   2. 遍历ResultSet对象并将每行数据暂存到HashMap实例中,以结果集的字段名或字段别名为键,以字段值为值   3....一对一关系、一对多关系查询请参考《MyBatis魔法堂:即学即用篇》      注意:在采用嵌套结果的方式查询一对一、一对多关系时,必须要通过resultMap下的id或result标签来显式设置属性/...字段映射关系,否则在查询多条记录时会仅仅返回最后一条记录的情况。

94870

MyBatis结果映射 - resultMap配置

简介 MyBatis是一个优秀的持久层框架,它支持灵活的结果映射机制,使得数据查询结果可以方便地映射为Java对象。...在MyBatis中,resultMap是一个关键的配置,用于定义数据查询结果与Java对象之间的映射规则。本文将深入探讨resultMap的配置和使用,带你了解如何优雅地进行结果映射。...什么是resultMapresultMap是MyBatis中的一个配置元素,用于定义数据查询结果到Java对象的映射关系。它告诉MyBatis如何将数据库中的列值映射到Java对象的属性上。...总结 resultMap是MyBatis中强大且灵活的结果映射机制。通过定义映射规则,可以将数据查询结果映射到Java对象中。...在实际项目中,充分掌握resultMap的使用,可以使数据查询与Java对象之间的转换更加便捷和精确,从而提升应用的性能和可维护性。

29110
领券