首页 > 编程语言 >Java_MyBatis框架:MyBatis框架

Java_MyBatis框架:MyBatis框架

时间:2024-07-05 09:59:31浏览次数:21  
标签:缓存 Java 框架 namespace 开启 SqlSession MyBatis 加载

MyBatis的执行流程

  • 先加载配置文件
  • 再通过SqlSessionFactoryBuilder创建SqlSessionFactory对象
  • 获取SqlSession
  • 生成代理对象
  • 执行Excutor
  • 匹配执行SQL语句

MyBatis的一级缓存和二级缓存

  • 一级缓存:也叫SqlSession级缓存,无需手动开启,可直接使用,为每个SqlSession单独分配的缓存空间,多个SqlSession之间的缓存不共享。
  • 二级缓存:namespace级别缓存,即一个mapper一个缓存,相互独立互不影响,同一个namespace下的多个SqlSession可以共享缓存,默认不开启,需要配置开启。

MyBatis的懒加载机制

  • 按需加载,当调用到关联的数据时,才与数据库交互。
  • 针对级联使用。
  • 懒加载的目的是减少内存的浪费和减轻系统负担。

标签:缓存,Java,框架,namespace,开启,SqlSession,MyBatis,加载
From: https://blog.csdn.net/2401_83326044/article/details/140149989

相关文章

  • Java_多线程:线程池
    1、线程池优点:降低资源消耗:通过重复利用已创建的线程降低线程创建和销毁造成的消耗。提高响应速度:当任务到达时,任务可以不需要等到线程创建就能立即执行。提高线程的可管理性:线程是稀缺资源,如果无限制的创建,不仅会消耗系统资源,还会降低系统的稳定性,使用线程池可以进行统一......
  • 基于Java+SpringBoot+Vue的学生宿舍管理系统的设计与开发(源码+lw+部署文档+讲解等)
    文章目录前言项目背景介绍技术栈后端框架SpringBoot前端框架Vue数据库MySQL(MyStructuredQueryLanguage)具体实现截图详细视频演示系统测试系统测试目的系统功能测试系统测试结论代码参考数据库参考源码获取前言......
  • 浅谈一下Mybatis当中插入主键返回的两个属性(useGeneratedKeys,selectKey)
    useGeneratedKeys和selectKey的区别今天遇见两个Mybatis当中很有像似点的属性,仔细研究了会.发现还是有带你不同.useGenerateKeys其值为true和false,表明是否将插入生成的主键返回到参数当中.useGeneratedKey属性会自动根据驱动生成对应SQL语句useGeneratedKey只支持“......
  • 京东毫秒级热key探测框架设计与实践,已实战于618大促
    在拥有大量并发用户的系统中,热key一直以来都是一个不可避免的问题。或许是突然某些商品成了爆款,或许是海量用户突然涌入某个店铺,或许是秒杀时瞬间大量开启的爬虫用户,这些突发的无法预先感知的热key都是系统潜在的巨大风险。风险是什么呢?主要是数据层,其次是服务层。热key对数据......
  • Python性能测试框架:Locust实战教程
    01认识Locust Locust是一个比较容易上手的分布式用户负载测试工具。它旨在对网站(或其他系统)进行负载测试,并确定系统可以处理多少个并发用户,Locust在英文中是蝗虫的意思:作者的想法是在测试期间,放一大群蝗虫攻击您的网站。当然事先是可以用Locust定义每个蝗虫(或测试......
  • 什么是构造函数?Java 中构造函数的重载如何实现?
    构造函数,就像是建筑房屋时的奠基仪式,是Java类中一个特殊的方法,主要用于初始化新创建的对象。每当创建一个类的新实例时,构造函数就会自动调用,负责为这个新对象分配内存,并对其进行必要的设置,确保对象处于可用状态。它有着与类同名的特殊身份,没有返回类型,甚至连void也不需要声明......
  • 阿里云OSS存储--java
    在yml文件配置属性,使用@Value进行注入@ComponentpublicclassAliOSSUtils{//外部属性注入@Value("${aliyun.oss.endpoint}")Stringendpoint;//@Value("${aliyun.oss.accessKeyId}")@Value("${aliyun.oss.accessKeySecret}")......
  • 数据库MyBatis传递数组或集合
    应用场景假设你有两个表,一个是商品信息表(表1,例如商品类别信息),另一个是库存信息表(表2,记录每种商品的库存数量)。你想知道特定几个商品类别(通过其ID标识,这里是1、2、3)的所有商品的总库存量。这个查询就会非常有用,它不仅能够跨表根据商品类别ID筛选出相关商品,还能计算出这些商......
  • 跟我一起学习和开发动态表单系统-后端用spring boot、mybatis实现方法(4)
     ##动态表单系统:利用SpringBoot和MyBatis实现后端服务在现代企业应用中,表单是数据收集和处理的核心部分。然而,传统的表单系统难以适应快速变化的需求。为了解决这个问题,我们可以使用动态表单系统,它可以根据业务需求灵活地调整表单结构。本文将介绍如何使用SpringBoot和......
  • Java----String类
    publicintlength()返回此字符串的长度。publicbooleanequals(Strings)比较两个字符串内容是否相同、区分大小写publicbooleanequalsIgnoreCase(StringanotherString)将此字符串与指定对象进行比较,忽略大小写。publiccharcharAt(intindex)返回指定索引......