Mybatis面试题--MyBatis延迟加载

news2024/10/7 5:30:42

Mybatis是否支持延迟加载?

答:Mybatis支持延迟记载,但默认没有开启

什么叫做延迟加载?

查询用户的时候,把用户所属的订单数据也查询出来,这个是立即加载

查询用户的时候,暂时不查询订单数据,当需要订单的时候,再查询订单,这个就是延迟加载

只查询了用户,没有查询订单 

全局延迟加载

 底层实现

1. 使用CGLIB创建目标对象的代理对象

2. 当调用目标方法user.getOrderList()时,进入拦截器invoke方法,发现user.getOrderList()null值,执行sql查询order列表

3. order查询上来,然后调用user.setOrderList(List<Order> orderList) ,接着完成user.getOrderList()方法的调用

面试回答

面试官:Mybatis是否支持延迟加载?

候选人: 是支持的, 延迟加载的意思是:就是在需要用到数据时才进行加载,不需要用到数据时 就不加载数据。

Mybatis支持一对一关联对象和一对多关联集合对象的延迟加载 在Mybatis配置文件中,可以配置是否启用延迟加载 lazyLoadingEnabled=true|false,默认是关闭的

面试官:延迟加载的底层原理知道吗?

候选人:延迟加载在底层主要使用的CGLIB动态代理完成的 第一是,使用CGLIB创建目标对象的代理对象,这里的目标对象就是开启了 延迟加载的mapper 第二个是当调用目标方法时,进入拦截器invoke方法,发现目标方法是null 值,再执行sql查询 第三个是获取数据以后,调用set方法设置属性值,再继续查询目标方法,就有值了

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/704285.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【C/C++】拷贝构造函数的调用 使用方法

创作不易&#xff0c;本篇文章如果帮助到了你&#xff0c;还请点赞 关注支持一下♡>&#x16966;<)!! 主页专栏有更多知识&#xff0c;如有疑问欢迎大家指正讨论&#xff0c;共同进步&#xff01; &#x1f525;c系列专栏&#xff1a;C/C零基础到精通 &#x1f525; 给大…

Linux--询问符:-i

功能&#xff1a; 执行某个操作时&#xff0c;Linux会询问用户是否确定执行操作。只有输入yes或者y才能成功执行操作。输入no或者n或者enter则操作失败 示例&#xff1a; ①确认操作 ②反悔操作

美工面试题目(合集)

美工面试题目篇1 1、目前常用的WEB标准静态页面语言是。(4分) 2、改变元素的外边距用&#xff0c;改变元素的内填充用。(6分) 3、在Table中&#xff0c;TR是&#xff0c;TD是。(6分) 4、如果给一行两列的表格(table)定义高度样式&#xff0c;在标签中定义最合理&#xff0c…

js中改变this指向的三种方式

js中改变this指向的三种方式 1、call方法2、apply方法3、bind方法 1、call方法 使用 call 方法调用函数&#xff0c;同时指定函数中 this 的值&#xff0c;使用方法如下代码所示&#xff1a; <script>const obj {uname: 刘德华}function fn(x, y) {console.log(this) …

Java Stream 流进行根据元素某一属性过滤计算其他属性实例

设计一个测试类Tuser package org.example;import com.alibaba.fastjson.annotation.JSONField;import java.io.Serializable;public class Tuser implements Serializable {//用户名private String name;//平台名称private String sys;//登录次数private int times;//一个合并…

如何使用计算机视觉检测钓鱼攻击?

无论你是喜欢、还是厌恶、亦或害怕&#xff0c;以ChatGPT为代表的新兴人工智能&#xff08;AI&#xff09;平台&#xff0c;目前正在更加深入地迈向公共领域。它们不仅表现为各种聪明的聊天机器人&#xff0c;而且能够在幕后以多种创新方式被广泛使用。其中&#xff0c;最为典型…

audio2face 与ue5结合实时语音嘴型同步

audio2face部分 1.安装audio2face以及localserver 2.打开streamingplayer的demo场景 3.localhost/NVIDIA/Assets/Audio2face/blendshape_solve目录下找到male_bs_arkit.usd拖拽到场景 4.选中场景中的male_bs_arkit.usd将分页切换到A2F data convert分页 5.参数设置 6.设置…

mysql用户相关操作

一、如何查看系统存在多少用户&#xff1f; 相关命令&#xff1a; SELECT COUNT(*) FROM mysql.user; SELECT User FROM mysql.user; DESC mysql.user; 二、如何查看用户是否设置密码&#xff1f; 在 MySQL 中&#xff0c;用户密码是被加密的&#xff0c;不可以直接查看用户…

cmake构建一个项目,同时依赖一个静态库项目和一个动态库项目

目录切到build中&#xff0c;然后cmake ..&#xff0c;生成VS解决方案 chengChu 文件夹 SET(LIBRARY_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/lib) set(CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS ON) #windows构建动态库时 , 加上这个会生成dll文件的同时生成lib文件&#xff0c;否则只…

FirmAE源码粗读(五)

文章目录 简介参考阅读libnvramsem系列函数sem_getsem_locksem_unlock nvram_init系列函数nvram_initnvram_set_default 感言 简介 鸽王来咯 这一篇写的是FirmAE中源于firmadyne的libnvram&#xff08;经过了一定修改&#xff09;&#xff0c;不得不说这一部分是很有意义的工作…

国产32位MCU低成本烟机变频风机方案

家用油烟机主要由风机系统&#xff0c;控制系统&#xff0c;滤油装置&#xff0c;外壳和悬吊装置组成&#xff0c;其中风机系统是油烟机的心脏&#xff0c;通常由电机和叶轮组成&#xff0c;一台油烟机功率的大小&#xff0c;也是由风机系统决定的&#xff0c;控制系统是烟机最…

JVM-垃圾回收器

垃圾回收器 Serial 新生代垃圾回收器&#xff0c;单线程&#xff0c;会产生STW&#xff08;Stop The World&#xff09;&#xff0c;采用拷贝算法。 它在停止线程时&#xff0c;并不是直接将线程强行停止&#xff0c;而是等线程运行到一个安全点&#xff08;Safe Point&…

超级实用!详解Node.js中的lodash模块和async模块

文章目录 7. lodash 模块安装 Lodash数组处理对象处理函数式编程 8. async 模块安装 Async异步流程控制串行执行&#xff08;Series&#xff09;并行执行&#xff08;Parallel&#xff09;循环迭代&#xff08;Each&#xff09; 控制流程和错误处理瀑布流控制&#xff08;Water…

强化学习:策略梯度法

策略梯度法的思路 之前我们是用表格的形式来表达策略&#xff0c;现在我们同样可以用函数来表达策略。之前学的所有的方法都是被称为 value-based&#xff0c;接来下学的叫 policy-based 。接下来我们来看一下 策略梯度法的思路。之前学的的策略全都是用表格来表示的&#xff0…

win 安装 C++运行环境 - MinGW

目录 一、下载二、安装四、检查是否安装成功五、参考文章 一、下载 官网地址&#xff1a;https://www.mingw-w64.org/downloads/ 1.1点击【MingW-W64-builds】 1.2点击【Github】 1.3下载 如果下载太慢&#xff0c;可以使用GitHub Proxy 代理加速 (ghproxy.com) 二、安装 …

c++为什么支持函数重载?

前言 在c语言中&#xff0c;函数名是不可以重复的&#xff0c;在同一作用域中函数名称都是唯一的。这也使得我们的函数调用充满了种种麻烦。 而c则支持通过函数重载解决了这个问题 函数重载&#xff1a;是函数的一种特殊情况&#xff0c;C允许在同一作用域中声明几个功能类似的…

如何在Microsoft Excel中移动列的位置

若要在 Excel 中移动列,请使用 shift 键或“插入剪切单元格”。你还可以神奇地更改所有列的顺序。 一、Shift 键 要在不覆盖现有数据的情况下快速移动 Excel 中的列,请按住键盘上的 shift 键。 移动单列: 1、首先,选择一列。 2、将鼠标悬停在所选内容的边界上。此时会出…

建立本地题库

建立试题库文件json 第一步&#xff1a; 按标准格式保存试题到本地,文件名为.json. import json import osimage_path os.path.join(C:\\, Users, 123, PycharmProjects, pythonProject1, test01, imges, jxn_0900.png)# 准备要保存的数据 data [{"id": 1,"…

基于深度学习的高精度动物园动物检测识别系统(PyTorch+Pyside6+YOLOv5模型)

摘要&#xff1a;基于深度学习的高精度动物园动物&#xff08;水牛、斑马、大象、水豚、海龟、猫、奶牛、鹿、狗、火烈鸟、长颈鹿、捷豹、袋鼠、狮子、鹦鹉、企鹅、犀牛、羊、老虎&#xff09;检测识别系统可用于日常生活中或野外来检测与定位动物园动物&#xff0c;利用深度学…

【Java可执行命令】(五)打包部署工具 jar:深入解析应用程序打包、分发和部署工具jar ~

Java可执行命令详解之jar 1️⃣ 概念2️⃣ 优势和缺点3️⃣ 使用3.1 语法格式&#xff1a;创建jar文件3.1.1 参数&#xff1a;-cf3.1.2 参数&#xff1a;-tf3.1.3 参数&#xff1a;-i3.1.4 参数&#xff1a;-v3.1.5 参数&#xff1a;-e 3.2 运行jar文件 4️⃣ 应用场景5️⃣ 注…