core mysql 延迟加载_mybatis延迟加载及实例讲解

延迟加载基本概念

上面我们已经知道使用association、collection可以实现一对一及一对多映射,association、collection还有另外一个延迟加载的功能。

延迟加载(lazy load)是关联对象默认的加载方式,延迟加载机制是为了避免一些无谓的性能开销而提出来的,所谓延迟加载就是当在真正需要数据的时候,才真正执行数据加载操作。

mybatis默认没有开启延迟加载功能,需要在springboot的yml配置文件中启动延迟加载功能:

mybatis-plus:

mapper-locations: "classpath:com/itpsc/mapper/**/*.xml"

type-aliases-package: "com.itpsc.entity"

global-config:

db-column-underline: true

configuration:

map-underscore-to-camel-case: true

cache-enabled: true #配置的缓存的全局开关

lazyLoadingEnabled: true #延时加载的开关

log-impl: org.apache.ibatis.logging.stdout.StdOutImpl #打印sql语句,调试用

延迟加载例子

比如查询员工信息的时候关联查询员工的部门信息。我们可以先把员工信息查询出来,当遍历员工信息需要查询对应的部门信息的时候,就可以调用员工的getDept()方法去加载部门信息。

EmpMapper.xml

select * from t_emp;

DeptMapper.xml

select * from t_dept where t_dept.deptno=#{emp.deptno}

测试代码

@Testpublic voidtestQueryEmpLazyLoadDept() {

List empList =empService.queryEmpLazyLoadDept();

System.out.println(empList.size());for(int i=0;i

Emp emp=empList.get(i);

System.out.println("员工信息:" +emp.toString());

System.out.println("员工所有部门信息:" +emp.getDept());

}

}

运行结果

JDBC Connection [com.mysql.jdbc.JDBC4Connection@1cd6b1bd] will not be managed bySpring==> Preparing: select * from t_dept where t_dept.deptno=?==> Parameters: 10(Integer)<==Columns: deptno, dname, loc<== Row: 10, ACCOUNTING, NEW YORK<== Total: 1员工信息:Emp{empno=7934, ename='MILLER', job='CLERK', mgr=7782, hiredate=Sat Jan 23 00:00:00 CST 1982, sal=1300.0, comm=null, deptno=10, skillList=null}

员工所有部门信息:Dept{deptno=10, dname='ACCOUNTING', loc='NEW YORK'}

从运行结果可以看出,调用Emp对象的getDept()方法是,才发出查询部门信息的sql语句,达到延迟加载的作用。

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

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

相关文章

mysql忘记i密码_Mysql忘记密码处理过程

最近项目用到了Mysql&#xff0c;项目里面没有运维人员&#xff0c;项目经理吩咐我在Linux下搭基础环境&#xff0c;其中遇到各种坑&#xff0c;现在记录一下&#xff0c;方便以后使用。以下内容是从网上摘抄过了的&#xff0c;若有侵权&#xff0c;请联系本人删除。1.mysql5.7…

vlan划分不能上网_VLAN工作原理

什么是VLANVLAN(Virtual LAN)&#xff0c;翻译成中文是“虚拟局域网”。可以看做是在一个物理局域网络上搭建出几个逻辑上分离的几个局域网。举个例子来说&#xff0c;如果一个交换机划分为两个VLAN&#xff0c;则相当于这台交换机逻辑上划分为两个交换机。VLAN的一个简单直观说…

mysql查询条件是小数 查不到6.28_28.mysql数据库之查询

1.查询语句mysql 多表关系 查询语句 索引1.添加数据补充:将一个查询结果插入到另一张表中create table student(name char(10),gender int);insert into student values("jack",1);insert into student values("rose",0);create table student_man(name ch…

控制for each循环次数_CCF CSP编程题解201312-1:出现次数最多的数

试题编号&#xff1a;201312-1试题名称&#xff1a;出现次数最多的数时间限制&#xff1a;1.0s内存限制&#xff1a;256.0MB问题描述:给定n个正整数&#xff0c;找出它们中出现次数最多的数。如果这样的数有多个&#xff0c;请输出其中最小的一个。输入格式:输入的第一行只有一…

python编程优化_掌握六大技巧,让python编程健步如飞!

有人跟我抱怨说python太慢了&#xff0c;然后我就将python健步如飞的六大技巧传授给他&#xff0c;结果让他惊呆了&#xff0c;你也想知道这个秘诀吗?这就告诉你&#xff1a;Python是一门优秀的语言&#xff0c;它能让你在短时间内通过极少量代码就能完成许多操作。不仅如此&a…

python离线安装依赖包_python离线安装外部依赖包的实现

{"moduleinfo":{"card_count":[{"count_phone":1,"count":1}],"search_count":[{"count_phone":4,"count":4}]},"card":[{"des":"阿里技术人对外发布原创技术内容的最大平台&…

python段子_Python爬取内涵段子里的段子

环境&#xff1a;Python3.6#!/usr/bin/env python3#-*-coding:utf-8-*-#version:3.6.4__author__ 杜文涛import requestsimport jsondef get_json_dic(url):global dict_jsonresponse requests.get(urlurl)json_response response.content.decode() #获取r的文本 就是一个js…

r语言中的或怎么表示什么不同_R经典入门 之 R语言的基本原理与概念 -- 200430

一、基本原理R是一种解释型语言&#xff0c;输入的命令可以直接被执行&#xff0c;不同于C等编译语言需要构成完整的程序才能运行。R的语法非常简单和直观。合法的R函数总是带有圆括号的形式&#xff0c;即使括号内没有内容(如&#xff0c;ls())。所有函数后都接有圆括号以区别…

旋流式沉砂池计算_旋流沉砂池设计方法

旋流沉砂池设计接口条件和主要参数设计旋流沉砂池前要确认的接口条件和信息包括&#xff1a;地质、气候等基本设计条件&#xff1b;可用地尺寸及在总图的位置坐标&#xff1b;地坪标高&#xff0c;上下游水位或范围&#xff0c;冻土层高度&#xff0c;管道覆土小深度要求&#…

parallelstream启动的线程数_高并发与多线程网络学习笔记(三)线程组和线程池

线程组线程组的作用是&#xff1a;可以批量管理线程或线程组对象&#xff0c;有效地对线程或线程组对象进行组织。构造函数ThreadGroup(String name)//默认parent为当前线程组 ThreadGroup(ThreadGroup parent, String name)具体方法//评估当前活跃的线程数,包括当前group和子g…

java 缓冲流_Java缓冲流的使用

package java;import org.junit.Test;import java.io.*;/*** 处理流之一&#xff1a;缓冲流的使用** 1.缓冲流&#xff1a;* BufferedInputStream* BufferedOutputStream* BufferedReader* BufferedWriter** 2.作用&#xff1a;提供流的读取、写入的速度* 提高读写速度的原因&a…

pytorch l2正则化_吴恩达深度学习 编程作业六 正则化(2)

推荐守门员应该将球踢到哪个位置&#xff0c;才能让自己的队员用头击中。1.无正则化模型判别是否有正则化与调用其他计算函数。准确率&#xff1a;0.948/0.915明显过拟合overfiting了。2.L2正则化公式如下&#xff0c;在原有cost函数基础上增加L2项&#xff0c;L2为参数w的均方…

java 代码锁_Java中的Lock锁

Lock锁介绍&#xff1a;在java中可以使用 synchronized 来实现多线程下对象的同步访问&#xff0c;为了获得更加灵活使用场景、高效的性能&#xff0c;java还提供了Lock接口及其实现类ReentrantLock和读写锁 ReentrantReadWriteLock。相比synchronized来实现同步&#xff0c;使…

vs中工具箱代表的意思_“日”除了代表太阳,其实还有这种意思,特别是出现在这些词语中的“日”...

对于“日”来说&#xff0c;大家都并不陌生&#xff0c;对于日的成语更是多得数不胜数&#xff0c;今天小编将日字成语进行了一个总结&#xff0c;需要用到的朋友们可以收藏&#xff01;一&#xff1a;以“日”开头的成语&#xff0c;大多数形容的是时间。日积月累、日久天长、…

java 访问路径_java获取项目访问路径的相关方法

java获取项目访问路径的相关方法刘振兴代码分享2016年02月11日6292暂无评论在jsp和class文件中调用的相对路径不同。在jsp里&#xff0c;根目录是WebRoot 在class文件中&#xff0c;根目录是WebRoot/WEB-INF/classes 当然你也可以用System.getProperty("user.dir")获…

java 保存文件在服务器_java文件保存至服务器

import java.io.ByteArrayOutputStream;import java.io.File;import java.io.FileOutputStream;import java.io.InputStream;import java.net.HttpURLConnection;import java.net.URL;public class ImageRequest{/*** 读取网络图片并保存至服务器硬盘中* param imgUrl* return …

mysql or走索引吗_加了索引,mysql查询就一定会用吗?

小白白跑去鹅厂面试&#xff0c;面试官提出了一个很实际的问题&#xff1a; mysql增加索引&#xff0c;那些情况会失效呢&#xff1f;谈一下实际工作中遇到的情况。我们的小白白又抛出了白氏秘籍&#xff1a;用不用索引&#xff0c;找DBA小姐姐&#xff01;啊&#xff1f;这是你…

java单词查找树_Trie 单词查找树 java实现(来自算法第4版)

强烈建议看书上的实现步骤&#xff0c;这里只是一个个人记录。单词查找树的性能&#xff1a;查找命中所需的时间与被查找的键的长度成正比。比如单词有7个字符&#xff0c;查找或插入操作最多只需要检查8个节点。查找未命中只需检查若干个字符。所需空间&#xff1a;在RN~RNw之…

学python开发必须要会wsgi么_学python着几个要搞清楚WSGI和uWSGI区别

Python&colon; 解决pip安装源被墙的问题pip install -i http://mirrors.aliyun.com/pypi/simple --trusted-host mirrors.aliyun.c ...resin的简单介绍和使用1.resin是一款应用服务器(application server),它自身也包含一款支持Http1.1协议的WEB服务器(web server),它也可以…

java 连接 sftp失败_java – 文件上传到SFTP失败(Apache VFS)

我有一个SFTP问题(WindowsWinSSHD).我尝试用Apache Commons VFS在一个文件夹中写一个文件.在本地SFTP上我没有上传的问题,但在第二个SFTP上我总是得到以下错误.FTP看起来像这样&#xff1a;我需要上传到文件夹“alis”.奇怪的是它没有User / Group和770权限.但是,使用FileZilla…