排序
《Mybatis 手撸专栏》第14章:解析和使用ResultMap映射参数配置
Mybatis 手撸专栏 第14章:解析和使用ResultMap映射参数配置 本文是《Mybatis 手撸专栏》的第14章,我们将继续深入学习解析和使用Mybatis中的ResultMap映射参数配置。ResultMap是Mybatis框架中...
《Mybatis 手撸专栏》第7章:SQL执行器的定义和实现
Mybatis 手撸专栏 第7章:SQL执行器的定义和实现 本章我们将深入探讨 Mybatis 中的 SQL 执行器的定义和实现。在 Mybatis 中,SQL 执行器负责将 SQL 语句发送到数据库执行,并返回结果。 1. SQL ...
《Mybatis 手撸专栏》第10章:使用策略模式,调用参数处理器
Mybatis 手撸专栏 第10章:使用策略模式,调用参数处理器 引言 欢迎来到《Mybatis 手撸专栏》的第10章!在本章中,我们将介绍如何使用策略模式来调用参数处理器,以提高Mybatis框架中的数据处理...
《Mybatis 手撸专栏》第11章:流程解耦,封装结果集处理器
Mybatis 手撸专栏 第11章:流程解耦,封装结果集处理器 本文是《Mybatis 手撸专栏》的第11章,将介绍如何解耦流程并封装结果集处理器。我们将通过代码示例演示如何通过封装结果集处理器,实现更...
《Mybatis 手撸专栏》第3章:实现映射器的注册和使用
Mybatis 手撸专栏 第3章:实现映射器的注册和使用 欢迎来到《Mybatis 手撸专栏》的第3章!在本章中,我们将深入探讨如何实现 Mybatis 映射器的注册和使用。映射器是 Mybatis 中负责定义数据库访...
《Mybatis 手撸专栏》第6章:数据源池化技术实现
Mybatis 手撸专栏 第6章:数据源池化技术实现 引言 欢迎来到《Mybatis 手撸专栏》的第6章!在本章中,我们将深入探讨数据源池化技术的实现方式。数据源池化是一种常用的技术,通过对数据库连接...
《Mybatis 手撸专栏》第20章:整合Spring
Mybatis 手撸专栏 第20章:整合Spring 引言 在前几篇文章中,我们详细介绍了 Mybatis 的基本使用和高级特性,以及二级缓存的原理和优化策略。然而,对于实际的项目开发而言,仅仅使用 Mybatis ...
《Mybatis 手撸专栏》第16章:解析含标签的动态SQL语句
Mybatis 手撸专栏 第16章:解析含标签的动态SQL语句 引言 欢迎来到Mybatis 手撸专栏!在本章中,我们将聚焦于解析含标签的动态SQL语句。动态SQL是Mybatis框架中非常强大的功能之一,它允许我们...
水煮MyBatis(二三)- 关于ID策略的"BUG"
前言 之所以不在一篇里写完,实在是不擅长写长文,写写停停,断断续续,时间跨度越长,越是磨人。 上一篇中,有意忽略了@GeneratedValue注解里的generator参数,主要有两层原因: 使用频率不高...
水煮MyBatis(二二)- 细说一下ID生成策略
前言 数据库表唯一值的生成策略,一开始就备受关注,从自增到UUID,从单机到分布式,业务千奇百怪,策略也是层出不穷。 锲子 在Mybatis框架里,假定表使用了【AUTO_INCREMENT】策略,在通过【ma...
MyBatis源码之:SqlSource
1. GenericTokenParser MyBatis底层通过GenericTokenParser组件来解析SQL文本中的#{}和${}占位符;该组件的使用方式如下所示: public class PlaceholderDemo { public static void main(String...
水煮MyBatis(二一)- 动态SQL:@Provider
前言 Mybatis里的动态SQL,估计用到的同学不是很多,毕竟在xml文件中定义sql语句的方式,已经可以满足绝大部分的开发需求,方便又简单。没有痛点,也就少了动力。这一章就来聊聊这块,对于有代...
MybatisPlus两个limit引发的思考(下)——mapper接口的初始化及PaginationInterceptor是如何拼接limit的
mapper接口的初始化 我们还是要先了解下MapperFactoryBean: 是一个工厂bean,用于创建Mybatis Mapper代理实例,该代理对象实现了指定的Mapper接口。继承了SqlSessionDaoSupport类并实现了Facto...
Idea Mybatis插件:提高CRUD效率
mybatis-sql-viewer插件主要提供能力:将mybatis xml转成真实SQL语句、参数mock、SQL规范检查、SQL索引检查、SQL运行、SQL压测及Mybatis SQL语句扫描。 1. 简介 虽然写了很久的CRUD,但是依旧觉...
水煮MyBatis(十七)- 延迟加载(下)
前言 前面介绍了一些延迟加载功能里的基本组件和相应的使用方式,这一章主要从源码角度来分析其是如何实现此功能的。 懒加载执行序列图 注意:在执行invoke之前,有一些前置动作:主查询完成之...
水煮MyBatis(十六)- 延迟加载(上)
前言 延迟加载,也叫懒加载,是一种对象关联关系的加载方式,被设计用来避免一些无谓的系统性能损耗。毕竟在正常情况下,一个关联对象只有被访问的时候,才有必要去显示;而若所有的访问都返回...
水煮MyBatis(十四)- 细说缓存刷新机制
前言 连续写几个大章节,乏了,这一章写点轻松的。什么是tcm,其实在上一章有提到,是CachingExecutor的一个类属性【TransactionalCacheManager 】,主要用来处理二级缓存的刷新逻辑。tcm里包含...
水煮MyBatis(十三)- 二级缓存
前言 相比一级缓存而言,二级缓存的实现类就很丰富了,还支持开发者自定义缓存实现。上一章提到过缓存执行器:CachingExecutor,就是专门为二级缓存准备的。默认的二级缓存驱除策略:LruCache。...
水煮MyBatis(十二)- 缓存【上】
前言 缓存是Mybatis里比较有意思的一个特性,一定程度上可以提高查询效率,降低数据库I/O压力。应对的场景是这样:在短时间内,频繁的反复执行相同的查询语句,如果任由其调用数据库,会对系统...
MybatisPlus不好用,帅小伙一气之下写了个MybatisPlusPro
富贵同学在用MybatisPlus作为开发的时候,虽然好用,但是大多数都在对dao层面的增删改查,所以打算自己抽取一套在controller层的功能出来,先介绍一下,“MybatisPlusPro” :只要继承一个BaseC...