首页 > 其他分享 >MyBatis延迟加载

MyBatis延迟加载

时间:2024-05-12 22:41:30浏览次数:20  
标签:对象 目标 MyBatis 加载 方法 延迟

MyBatis是否支持延迟加载

延迟加载的意思是在需要用到数据时才进行加载,不需要用到数据时就不加载数据。
MyBatis支持一对一关联对象和一对多关联集合对象的延迟加载。
在Mybatis配置文件中,可以配置是否启用延迟加载lazyLoadingEnabled=truel/false,默认是关闭的。或者fetchType=lazy/eager设置成局部延迟加载。

延迟加载的底层原理

  1. 使用CGLIB创建目标对象的代理对象。
  2. 当调用目标方法时,进入拦截器invoke方法,发现目标方法是null值,执行sql查询。
  3. 获取数据以后,调用set方法设置属性值,再继续查询目标方法,就有值了。

标签:对象,目标,MyBatis,加载,方法,延迟
From: https://www.cnblogs.com/worshipone/p/18188344

相关文章

  • MyBatis批处理
    减少了jdbc驱动与数据库服务器之间的网络传输开销使用batch前:执行一条sql就要进行一次网络IO开销,还要等待服务器响应结束后才能提交下一条sql。预编译n次,设置参数n次,执行n次使用batch之后:客户端的多条sql是一起提交给服务器的,一次batch只涉及到一次网络传输开销。预编译一次,设......
  • 一个低级问题导致vLLM加载大模型时ray卡死
    这两天一直被一个问题困扰,用vLLM加载千问时不能开并行(tensor_parallel_size>1),一开就会卡在ray阶段,最初是提示StartedalocalRayinstance,后来手工启动ray集群,就提示connectedtoRaycluster。无论怎样调都无法跑下去,根本不会加载模型,换了各种版本的vllm、transformer、ray......
  • Mybatis中引用类型不需要加@param()注解
    在MyBatis中,对于引用类型的参数(即Java对象),通常不需要使用@Param注解,除非你在映射文件中使用了多个参数,并且这些参数不是封装在一个对象中的。当你只有一个引用类型的参数传递给MyBatis的映射器方法时,MyBatis会自动将该参数作为唯一参数处理,并可以在SQL映射文件中通过......
  • 如果你还不了解Java类的加载过程,来看看这一篇吧
    文章首发于【Java天堂】,跟随我探索Java进阶之路!虚拟机类加载机制在Java代码被编译成Class文件之后,最终需要加载到Java虚拟机中才能被运行和使用,Java虚拟机加载Class文件到内存,并对数据进行校验、转换、解析和初始化之后,才变成了我们真正可以使用的Java类型,这个过程就叫做Java......
  • 【最短路】网络延迟时间
    题源狄克斯特拉【待完成】classSolution:defnetworkDelayTime(self,times:List[List[int]],n:int,k:int)->int:g=[[float('inf')]*nfor_inrange(n)]forx,y,timeintimes:g[x-1][y-1]=timedist......
  • C# 使用QuestPDF各种报错,System.IO.FileNotFoundException:“未能加载文件或程序集,Dll
    最近要做一个生成pdf报告的小功能,搜索一番之后,选择了QuestPDF这个库由于我是要在netframework4.8中实现功能,可能使用场景太老了,导致使用过程一波三折,非常的坎坷,折腾了一下午,增长了一些经验,记录下来1,如果你要在netframework4.8框架中使用,就不要自作聪明的用netstandard2.0框架......
  • mybatis缓存
    缓存缓存(即cache)的作用是为了减去数据库的压力,提高数据库的性能。缓存实现的原理是从数据库中查询出来的对象在使用完后不销毁,而是存储在内存(缓存)中,当再次需要获取该对象时,直接从内存中获取,不再向数据库执行select语句,减少对数据库的查询次数,提高了数据库的性能。缓存是使用Map......
  • JVM类加载器ClassLoader源码剖析
    在JVM类加载器分类中通过ClassLoader获取了不同类型的类加载器,它是如此之重要那么ClassLoader究竟为何物呢?通过源码分析(以jdk17示例):调试跟踪ClassLoader:......
  • BCEL:加载恶意类
    直入主题为啥要用BCEL?因为范围广,如下JDK内置类(JDK<8u251)Tomcat中相关依赖:Tomcat7org.apache.tomcat.dbcp.dbcp.BasicDataSourceTomcat8及以后org.apache.tomcat.dbcp.dbcp2.BasicDataSourcecom.sun.org.apache.bcel.internal.util.ClassLoader重写了默认的类加载方法......
  • 面向单片机的超轻量级的神经网络推理库+单片机上实现动态加载功能的函数库
    1、TinyMaix-面向单片机的超轻量级的神经网络推理库TinyMaix是专为低资源的单片机设计的AI神经网络推理框架,通常被称为TinyML。TinyMaix可以让你在任意单片机上运行轻量级深度学习模型。TinyMaix的设计原则:易用性>移植性>速度>空间。TinyMaix其实是矽速科技(Sipee......