青云博客 分享、记录

MyBatis一二级缓存的区别?

首先,咱们说说一级缓存。在同一个会话里,MyBatis 会自动开启一级缓存。这个缓存就是为了优化查询操作的速度。一旦你执行了一个查询,MyBatis 会把结果先存起来,这样下次再查询相同的数据的时候,它就可以直接从缓存里拿,不用再去数据库查询了。只要会话不结束,这个缓存就一直有效,只在这一个会话里起

詹学伟 发布于 2024-04-23

Mybatis 是如何进行分页的?

MyBatis在数据库查询中执行分页操作时,通常会使用分页插件来处理。分页插件能够根据数据库的不同,生成适当的分页查询语句,并将查询结果进行分页处理。下面我将解释MyBatis如何进行分页以及分页插件的一般原理。 MyBatis的分页原理: 数据库方言(Dialect):不同的数据库(如MySQL、

詹学伟 发布于 2024-04-23

如何编写一个MyBatis插件?

编写一个MyBatis插件可以让你在执行SQL语句前后进行自定义的操作,比如日志记录、性能监控等。下面我将演示一个简单的MyBatis插件,它会在执行查询SQL语句前打印一条日志。 首先,你需要实现一个MyBatis的拦截器(Interceptor)。一个拦截器需要实现MyBatis的Interce

詹学伟 发布于 2024-04-23

简述 Mybatis 的插件运行原理

MyBatis的插件机制允许你在MyBatis的核心组件执行过程中插入自定义逻辑,以扩展或修改其行为。插件可以在SQL执行、结果映射、参数处理等阶段进行干预。插件运行原理是基于Java的动态代理,它可以包装MyBatis的核心组件,拦截方法调用,并在方法执行前后执行自定义逻辑。 插件机制的核心是In

詹学伟 发布于 2024-04-23

如何在 MyBatis 中进行分页查询?

在 MyBatis 中进行分页查询是一个常见的需求,特别是在处理大量数据时。下面我会向你解释如何进行分页查询,并提供一些常用的分页插件和技巧。 基本的分页查询: MyBatis 提供了一个简单的方式来实现分页查询,主要涉及到两个参数:offset 和 limit。offset 表示从结果集的哪一行开

詹学伟 发布于 2024-04-23

讲讲Mybatis 的一级、二级缓存

MyBatis提供了两种级别的缓存:一级缓存(本地缓存)和二级缓存(全局缓存)。它们分别位于不同的作用范围,有不同的特性和使用场景。 一级缓存(本地缓存): 作用范围: 一级缓存是在SqlSession的生命周期内有效,也就是说,每个SqlSession拥有独立的一级缓存。 默认开启: 一级缓存在M

詹学伟 发布于 2024-04-23

MyBatis的插件能够在哪些地方进行拦截?

MyBatis的插件可以在MyBatis的执行过程中的多个关键点进行拦截和干预。这些关键点包括: Executor(执行器)层面的拦截: 这是SQL语句的执行层面,插件可以在SQL语句执行前后进行拦截。这包括了SQL的预处理、参数设置、查询结果的映射等。 StatementHandler(语句处理器

詹学伟 发布于 2024-04-23

MyBatis如何处理懒加载和预加载?

当谈到MyBatis中的懒加载和预加载时,我们实际上在讨论在获取数据库数据时如何处理关联对象的加载方式。 懒加载是一种延迟加载技术,它在需要访问关联对象的时候才会加载相关数据。这意味着,当你从数据库中获取一个主对象时,它的关联对象并不会立即加载到内存中,只有当你实际调用访问关联对象的方法时,MyBa

詹学伟 发布于 2024-04-23

能说说MyBatis的工作原理吗?

首先,我们知道MyBatis是一个优秀的持久层框架,它是用来简化数据库操作的。传统地,如果没有使用框架,我们可能需要手写大量的JDBC代码,处理很多的资源管理和异常处理。但MyBatis帮我们抽象了这一部分。 好,让我们来看一下MyBatis的工作原理: 配置文件:MyBatis需要一个XML配置文

詹学伟 发布于 2024-04-23

为什么说 Mybatis 是半ORM 映射工具?

首先,Mybatis被称为半ORM框架是因为它在数据库操作方面提供了一些对象关系映射的功能,但相对于全ORM框架,它更加灵活和轻量级。在Mybatis中,我们需要手动编写SQL来执行数据库操作,这跟传统的JDBC方式有点类似。但是,Mybatis通过映射文件来实现Java对象与数据库表之间的映射,这

詹学伟 发布于 2024-04-23