
Mybatis
文章平均质量分 62
沈建南
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Mybatis执行器
Mybatis执行器 Mybatis执行过程中的四个模块: 动态代理MapperProxy SQL会话SqlSession 执行器Executor JDBC执行器StatementHandler 会话提供基础的Api功能,具体实现交给指定的executor执行 简单执行器——SimpleExecutor 无论sql是否一样,每次都会进行预编译 可重用执行器——ReuseExecutor 批处理执行器——BatchExecutor 批处理只针对修改操作进行批处理,查询操作还是会多次预编译原创 2021-09-28 09:58:27 · 304 阅读 · 0 评论 -
Mybatis二级缓存
Mybatis二级缓存 二级缓存应有的需求 二级缓存也称作是应用级缓存,与一级缓存不同的是它的作用范围是整个应用,而且可以跨线程使用。所以二级缓存有更高的命中率,适合缓存一些修改较少的数据 存储方式:内存、硬盘、第三方集成… 溢出淘汰策略:FIFO先进先出、LRU最近最少使用… 过期清理、线程安全、命中率统计、序列化… Mybatis使用装饰器+责任链的形式来实现缓存的所有需求 二级缓存的命中 运行时参数相关 会话提交后 sql语句、参数相同 相同的statementId RowBounds相同原创 2021-09-28 09:55:43 · 144 阅读 · 0 评论 -
Mybatis之拦截链
Mybatis之拦截链 Mybatis采用责任链模式,通过动态代理组织多个拦截器(插件),通过这些拦截器可以改变Mybatis的默认行为(诸如SQL重写之类的),由于插件会深入到Mybatis的核心,因此在编写自己的插件前最好了解下它的原理,以便写出安全高效的插件。 拦截器(Interceptor)在 Mybatis 中被当做插件(plugin)对待,官方文档提供了 Executor,ParameterHandler,ResultSetHandler,StatementHandler 共4种,我们这次借鉴M原创 2021-03-29 00:47:27 · 511 阅读 · 0 评论 -
Mybatis源码解析之Mapper动态代理
Mybatis源码解析之Mapper动态代理 概述 在使用Mybatis执行sql语句时,第一步就是调用我们自定义的Mapper执行相应的方法,Mybatis框架根据接口定义创建接口的动态代理对象,代理对象的方法体同Dao接口实现类方法。这里详细的分析一下Mybatis是如何做到的。 前期准备 跟上次调试代码一样,这次我们把断点打到getMapper这一步 代码调试 进入sqlSession.getMapper(UsersMapper.class); 发现调用了configuration的getMappe原创 2021-03-21 20:44:33 · 203 阅读 · 0 评论 -
Mybatis源码解析之Mapper与xml的加载和关联
Mybatis源码解析之Mapper与xml的加载和关联 什么是 MyBatis? 我们去Mybatis的官方文档看一下Mybatis的介绍 MyBatis 是一款优秀的持久层框架,它支持自定义 SQL、存储过程以及高级映射。MyBatis 免除了几乎所有的 JDBC 代码以及设置参数和获取结果集的工作。MyBatis 可以通过简单的 XML 或注解来配置和映射原始类型、接口和 Java POJO(Plain Old Java Objects,普通老式 Java 对象)为数据库中的记录。 我们进入实战查看M原创 2021-03-21 01:50:11 · 1127 阅读 · 3 评论