插件
Interceptor
这是一个 MyBatis 拦截器插件,核心功能是:把 MyBatis 日志中带 ? 占位符的 SQL,还原成参数回填后的完整可执行 SQL,并打印执行耗时。开发调试时非常实用。
实现这个接口之后,实现它的intercept方法,拦截sql,去处理 SQL 执行,记录耗时,打印完整 SQL。
核心注解 @Intercepts,放在类上面,拦截 MyBatis 的 Executor.query() 和 Executor.update() 两个方法,即所有查询和更新操作都会被拦截。
1 | @Intercepts({ |
更多信息可以查看官方文档:https://mybatis.net.cn/configuration.html#plugins
文章作者: coder-xuyong
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 coder-xuyong!
相关推荐

2025-10-15
Mybatis原理
Mybatis 原理 Mybatis 的前身就是 iBatis ,是一款优秀的持久层框架,它支持自定义 SQL、存储过程以及高级映射。本文以一个 Mybatis 完整示例为切入点,结合 Mybatis 底层源码分析,图文并茂的讲解 Mybatis 的核心工作机制。 Mybatis 生命周期 SqlSessionFactoryBuilderSqlSessionFactoryBuilder 的职责SqlSessionFactoryBuilder 负责创建 SqlSessionFactory 实例。SqlSessionFactoryBuilder 可以从 XML 配置文件或一个预先定制的 Configuration 的实例构建出 SqlSessionFactory 的实例。 Configuration 类包含了对一个 SqlSessionFactory 实例你可能关心的所有内容。 SqlSessionFactoryBuilder 应用了建造者设计模式,它有五个 build 方法,允许你通过不同的资源创建 SqlSessionFactory 实例。 12345SqlSessionFa...

2025-10-15
Mybatis快速入门
MyBatis 快速入门 MyBatis 的前身就是 iBatis ,是一个作用在数据持久层的对象关系映射(Object Relational Mapping,简称 ORM)框架。 什么是 MyBatisMyBatis 是一款持久层框架,它支持定制化 SQL、存储过程以及高级映射。MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。MyBatis 可以使用简单的 XML 或注解来配置和映射原生类型、接口和 Java 的 POJO(Plain Old Java Objects,普通老式 Java 对象)为数据库中的记录。 快速入门 这里,我将以一个入门级的示例来演示 Mybatis 是如何工作的。 注:本文后面章节中的原理、源码部分也将基于这个示例来进行讲解。 数据库准备在本示例中,需要针对一张用户表进行 CRUD 操作。其数据模型如下: 12345678910111213CREATE TABLE IF NOT EXISTS user ( id BIGINT(10) UNSIGNED NOT NULL AUTO_INCREMENT CO...

2026-08-14
MyBatisPlus快速入门
官方文档https://baomidou.com/introduce/ 入门案例引入依赖12345<dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-boot-starter</artifactId> <version>3.5.3.1</version></dependency> 日志相关配置12345logging: level: com.itheima: debug # 设置项目包 com.itheima 及其子包的日志级别为 DEBUG(输出详细信息) pattern: dateformat: HH:mm:ss # 日志时间格式仅显示小时:分钟:秒(不显示毫秒和日期) 定义Mapper首先,在启动类上面配置@MapperScan(“path/xx”),用于扫描持久层。 1public interface UserMapper extends ...

2026-08-18
MyBatisPlus核心功能
条件构造器在BaseMapper中,有一些Wrapper参数的方法,这就是复杂一点的where条件查询。复杂的条件查询会用到Wrapper类,以及它的各种子类,我们常用的就是QueryWrapper、UpdateWrapper和LambdaQueryWrapper。 QueryWrapper无论是修改、删除、查询,都可以使用QueryWrapper来构建查询条件。接下来看一些例子:查询:查询出名字中带o的,存款大于等于1000元的人。代码如下: 1234567891011@Testvoid testQueryWrapper() { // 1.构建查询条件 where name like "%o%" AND balance >= 1000 QueryWrapper<User> wrapper = new QueryWrapper<User>() .select("id", "username", "info", "bal...

2025-09-16
Spring Framework 综述
Spring Framework 综述更多教程可以查看:官方教程文档 Spring Framework 简介Spring Framework 是最受欢迎的企业级 Java 应用程序开发框架。用于构建企业级应用的轻量级、一站式解决方案。 核心思想Spring 最核心的两个技术思想是:IoC 和 Aop IoCIoC 即 Inversion of Control ,意为控制反转。 Spring 最认同的技术是控制反转的 依赖注入(DI) 模式。控制反转(IoC)是一个通用的概念,它可以用许多不同的方式去表达,依赖注入仅仅是控制反转的一个具体的例子。 当编写一个复杂的 Java 应用程序时,应用程序类应该尽可能的独立于其他的 Java 类来增加这些类可重用可能性,当进行单元测试时,可以使它们独立于其他类进行测试。依赖注入(或者有时被称为配线)有助于将这些类粘合在一起,并且在同一时间让它们保持独立。 到底什么是依赖注入?让我们将这两个词分开来看一看。这里将依赖关系部分转化为两个类之间的关联。例如,类 A 依赖于类 B。现在,让我们看一看第二部分,注入。所有这一切都意味着类 B 将通过 I...

2025-09-15
SpringBoot 知识清单
SpringBoot 知识图谱 预警:本文非常长,建议先 mark 后看,也许是最后一次写这么长的文章 说明:前面有 4 个小节关于 Spring 的基础知识,分别是:IOC 容器、JavaConfig、事件监听、SpringFactoriesLoader 详解,它们占据了本文的大部分内容,虽然它们之间可能没有太多的联系,但这些知识对于理解 Spring Boot 的核心原理至关重要,如果你对 Spring 框架烂熟于心,完全可以跳过这 4 个小节。正是因为这个系列的文章是由这些看似不相关的知识点组成,因此取名知识清单。 在过去两三年的 Spring 生态圈,最让人兴奋的莫过于 Spring Boot 框架。或许从命名上就能看出这个框架的设计初衷:快速的启动 Spring 应用。因而 Spring Boot 应用本质上就是一个基于 Spring 框架的应用,它是 Spring 对“约定优先于配置”理念的最佳实践产物,它能够帮助开发者更快速高效地构建基于 Spring 生态圈的应用。 那 Spring Boot 有何魔法?自动配置、起步依赖、Actuator、命令行界面(CL...
评论

