【mybatis】mybatis 使用association关联查询的几种方式

转自:

=====================================

这里以一对一单向关联为例。对使用或不使用association的配置进行举例。

实体类:

———————————————-

对于关联属性的配置,有5种方式:

———————————————

方式零:使用内连接+级联属性:

方式一:使用内连接+扩展类:

扩展类:

方式二:使用内连接+association内联result设置:

方式三:使用内连接+association引用resultMap

注意:对于IdCardMapper,为配合方式三需要修改查询到的id属性为cid(即指定column=”cid”):

方式四:使用单表查询+association引用select方式,不用inner查询(以避免再次查询),可以利用延迟加载,配置:

一个一对一单向关联使用注解的例子:(采用方式四非join方式,延迟加载)

Mapper接口类:

动态SQL支持:

业务层:

SpringUtil工具类:

Mybatis配置文件:

Spring配置文件:

测试类:

以上为注解版的一对一的使用示例,也可以使用非注解版(XML版本),需要增加Mapper映射文件。

Mapper映射文件:

PersonMapper.xml:

IdCardMapper.xml:

一对多(以及多对一)的示例(含XML版本和注解版本),链接:

多对多(以及多对一)的示例(含XML版本和注解版本),链接:

自关联示例(含XML版本和注解版本),链接:

Original: https://www.cnblogs.com/sxdcgaq8080/p/16063921.html
Author: Angel挤一挤
Title: 【mybatis】mybatis 使用association关联查询的几种方式

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/543047/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • Java基础 awt Button 鼠标放在按钮上背景颜色改变,鼠标离开背景颜色恢复

    JDK :OpenJDK-11 OS :CentOS 7.6.1810 IDE :Eclipse 2019‑03 typesetting :Markdown code packag…

    Java 2023年5月29日
    091
  • nginx –增加 headers-more-nginx-module

    已经编译好的编nginx需要添加headers-more-nginx-module模块来自定义响应头 1.需要下载headers-more-nginx-module wget ht…

    Java 2023年5月30日
    075
  • Tomcat和Nginx的区别

    Tomcat和Nginx的区别 1、从应用方面 tomcat一般是做动态解析才会用得到,支持jsp的解析,需要配置JDK支持。 nginx,则一般是做静态,本身不具备动态解析功能,…

    Java 2023年6月15日
    074
  • 学到了_SpringBoot项目整合ElasticSearch7.8.1(增删改查索引,增删改查文档)

    创建SpringBoot工程,更改pom文件 以下依赖全部使用到了,所以务必全部添加 <?xml version="1.0" encoding=&quot…

    Java 2023年6月7日
    064
  • 3、计算机系统漫游

    1 计算机的信息 2 编译系统 3 硬件系统 4 高速缓存 5 存储器层次结构 6 操作系统 6.1 操作系统的抽象表示 6.2 进程 6.3 线程 6.4 虚拟内存 7 系统之间…

    Java 2023年6月7日
    0100
  • Spring Boot实现数据访问计数器

    1、数据访问计数器 在Spring Boot项目中,有时需要数据访问计数器。大致有下列三种情形: 1)纯计数:如登录的密码错误计数,超过门限N次,则表示计数器满,此时可进行下一步处…

    Java 2023年6月14日
    072
  • zookeeper篇-watch命令

    点赞再看,养成习惯,微信搜索「 小大白日志」关注这个搬砖人。 文章不定期同步公众号,还有各种一线大厂面试原题、我的学习系列笔记。 每个路径节点都有一个watcher监控,当该节点数…

    Java 2023年6月8日
    093
  • 一致性hash算法

    一致性哈希算法在1997年由麻省理工学院提出的一种分布式哈希(DHT)实现算法,设计目标是为了解决因特网中的热点(Hot spot)问题,初衷和CARP十分类似。一致性哈希修正了C…

    Java 2023年6月9日
    084
  • 什么是JDK,JRE

    JDK – -> 全称(Java Development Kit Java 开发工具包) JDK = JRE+java的开发工具 [java, javac,jav…

    Java 2023年6月16日
    088
  • Linux查看日志文件写入速度的4种方法

    原创:扣钉日记(微信公众号ID:codelogs),欢迎分享,转载请保留出处。 简介 有时,我们需要查看某个文件的增长速度,如日志文件,以此来感受系统的负载情况,因为一般情况下,日…

    Java 2023年6月7日
    079
  • MySQL中的事务和MVCC

    本篇博客参考掘金小册——MySQL 是怎样运行的:从根儿上理解 MySQL 以及极客时间——MySQL实战45讲。 虽然我们不是DBA,可能对数据库没那么了解,但是对于数据库中的索…

    Java 2023年6月5日
    094
  • 信息系统项目管理师计划

    报名地址:https://bm.ruankao.org.cn/sign/welcome#test=2 课程内容 视频时长 计划开始时间 实际开始时间 完成时间 信息系统项目管理基础…

    Java 2023年6月9日
    070
  • WIN DLL劫持提权

    WIN DLL劫持提权 原理: Windows程序启动的时候需要DLL。如果这些DLL 不存在,则可以通过在应用程序要查找的位置放置恶意DLL来提权。通常,Windows应用程序有…

    Java 2023年6月6日
    0101
  • java 经纬度处理、计算两地的距离、获取当前一定距离以内的经纬度值

    package com.fh.util; import java.util.HashMap; import java.util.Map; /** * 说明:经纬度处理 * 作者:F…

    Java 2023年6月7日
    074
  • python 使用安装虚拟环境 virtualenv

    目录 1、安装virtualenv 2、Ubuntu使用python3创建虚拟环境目录 3、激活虚拟环境 4、关闭虚拟环境 5、查看python版本 1、安装virtualenv …

    Java 2023年6月8日
    0120
  • Java 基础(Stream APl) 二

    Stream的终止操作 终端操作会从流的流水线生成结果。其结果可以是任何不是流的值,例如: List、Integer、甚至是 void。 流进行了终止操作后,不能再次使用。 方法 …

    Java 2023年5月29日
    0163
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球