首页 > 其他分享 >mybatis结果映射

mybatis结果映射

时间:2023-05-27 11:31:52浏览次数:28  
标签:语句 级联 映射 结果 resultMap mybatis 属性

什么是结果映射?

     resultMap 元素是 MyBatis 中最重要最强大的元素。它可以让你从 90% 的 JDBC ResultSets 数据提取代码中解放出来,并在一些情形下允许你进行一些 JDBC 不支持的操作。实际上,在为一些比如连接的复杂语句编写映射代码的时候,一份 resultMap 能够代替实现同等功能的数千行代码。ResultMap 的设计思想是,对简单的语句做到零配置,对于复杂一点的语句,只需要描述语句之间的关系就行了。

结果映射应用场景

有两张表,其中一张是学生表,另一张是老师表,其中多个学生对应一个老师,现在想查询所有学生及对应老师的信息。其中就涉及到一对多以及多对一的复杂查询。

resultMap属性介绍

 id:定义resultMap的唯一标识

type:定义该resultMap最终映射的pojo对象

autoMapping:主要功能是完成结果集的映射,在映射是会将resultMapping中的字段按照名称相同的方式映射到返回类型的对应属性上,在映射时会自动忽略大小写。比如查询出的字段是Student但是返回类型中有一个属性是student,并且有一个setstudent的方法,这样是可以匹配成功的,能够自动完成映射,将返回的值映射给对应的返回类型中的Id。

extends:继承父类的resultMap,然后父类有的那一部分属性标签就不用再重复定义了。

Resultmap子标签

序号

元素名称

子元素

使用

1

constructor

idArg 、arg

用于配置构造器方法

2

id


将结果集标记为id,以方便全局调用

3

result


配置POJO到数据库列名映射关系

4

association

级联使用

代表一对一关系

5

collection

级联使用

代表一对多关系

6

discriminator

级联使用

鉴别器 根据实际选择实例,可以通过特定条件确定结果集

标签:语句,级联,映射,结果,resultMap,mybatis,属性
From: https://blog.51cto.com/u_16096846/6361635

相关文章

  • Mybatis核心原理简单实现
    1、导入一个依赖点击查看代码<dependency><groupId>dom4j</groupId><artifactId>dom4j</artifactId><version>1.6.1</version></dependency>2、有一个mapper.xml文件点击查看代码<?......
  • Linux 或 Windows 上实现端口映射
    Linux或Windows上实现端口映射Linux就该这么学 2023-05-2708:02 发表于北京链接:https://www.cnblogs.com/connect/p/server-port-proxy.html排版:入门小站通常服务器会有许多块网卡,因此也可能会连接到不同的网络,在隔离的网络中,某些服务可能会需要进行通信,此时服......
  • mybatis-plus
    mybatis-plus是一款Mybatis增强工具,用于简化开发,提高效率。下文使用缩写mp来简化表示mybatis-plus,本文主要介绍mp搭配SpringBoot的使用。注:本文使用的mp版本是当前最新的3.4.2,早期版本的差异请自行查阅文档官方网站:baomidou.com/快速入门创建一个SpringBoot项目导入依赖......
  • MybatisPlusGenerator 实体类 xml dao 生成工具
    packagecom.thtf.zwdsj.gongjia.config;importcom.baomidou.mybatisplus.core.mapper.BaseMapper;importcom.baomidou.mybatisplus.generator.FastAutoGenerator;importcom.baomidou.mybatisplus.generator.config.OutputFile;importcom.baomidou.mybatisplus.gener......
  • MyBatis传入参数为数组、list的写法
    <updateid="disableUsers">UPDATEt_userSETdisable_flag=#{disable}WHERE1=1<iftest="userIds!=nullanduserIds.size>0">ANDidIN<foreachcollection="item"item=&......
  • MyBatisPlus踩坑
    背景:当一个外部系统调用我们一个免登录的API接口,在我们数据库去保存或更新一条数据时,库表中的创建人和更新人字段不是正确的值。但是代码层面我们是有正确的设置创建人和更新人,查询sql日志发现我们设置的值统一被替换为“admin”了。这个时候才明白为什么另一个接口中在保存完......
  • Mybatis-Plus自动生成代码,自定义Controller
    MP网址:https://baomidou.com/pages/779a6e/#%E4%BD%BF%E7%94%A8直接copy官网代码修改成自己的:privatevoidgenerate(){FastAutoGenerator.create("jdbc:mysql://localhost:3306/test?serverTimezone=GMT%2b8","root","P@ss123.")......
  • MyBatis源码之SqlSession的解读
    MyBatis源码之SqlSession的解读1、SqlSession的简单使用首先先说一下SqlSession是什么?SqlSession其实就是对JDBC中Connection的一个封装,简化了对数据库的操作。当你获取到一个SqlSession的时候其实就是获取到一个数据库连接,可以进行数据库操作,SqlSession顾名思义就是一次与数据......
  • Springboot+Mybatisplus+ClickHouse集成
    核心依赖引入<dependency><groupId>ru.yandex.clickhouse</groupId><artifactId>clickhouse-jdbc</artifactId><version>0.1.53</version></dependency><!--Mybati......
  • 框架技术 ---- Mybatis介绍
    内容管理       三层架构       JDBC的缺陷、       框架framework       Mybatis       mybatis主配置文件       Mybatis映射文件mapper           select标签       mybatis简单使用         ......