Mybatis
文章平均质量分 62
沈建南
这个作者很懒,什么都没留下…
展开
-
Mybatis执行器
Mybatis执行器Mybatis执行过程中的四个模块:动态代理MapperProxySQL会话SqlSession执行器ExecutorJDBC执行器StatementHandler会话提供基础的Api功能,具体实现交给指定的executor执行简单执行器——SimpleExecutor无论sql是否一样,每次都会进行预编译可重用执行器——ReuseExecutor批处理执行器——BatchExecutor批处理只针对修改操作进行批处理,查询操作还是会多次预编译原创 2021-09-28 09:58:27 · 238 阅读 · 0 评论 -
Mybatis二级缓存
Mybatis二级缓存二级缓存应有的需求二级缓存也称作是应用级缓存,与一级缓存不同的是它的作用范围是整个应用,而且可以跨线程使用。所以二级缓存有更高的命中率,适合缓存一些修改较少的数据存储方式:内存、硬盘、第三方集成…溢出淘汰策略:FIFO先进先出、LRU最近最少使用…过期清理、线程安全、命中率统计、序列化…Mybatis使用装饰器+责任链的形式来实现缓存的所有需求二级缓存的命中运行时参数相关会话提交后sql语句、参数相同相同的statementIdRowBounds相同原创 2021-09-28 09:55:43 · 103 阅读 · 0 评论 -
Mybatis之拦截链
Mybatis之拦截链Mybatis采用责任链模式,通过动态代理组织多个拦截器(插件),通过这些拦截器可以改变Mybatis的默认行为(诸如SQL重写之类的),由于插件会深入到Mybatis的核心,因此在编写自己的插件前最好了解下它的原理,以便写出安全高效的插件。拦截器(Interceptor)在 Mybatis 中被当做插件(plugin)对待,官方文档提供了 Executor,ParameterHandler,ResultSetHandler,StatementHandler 共4种,我们这次借鉴M原创 2021-03-29 00:47:27 · 449 阅读 · 0 评论 -
Mybatis源码解析之Mapper动态代理
Mybatis源码解析之Mapper动态代理概述在使用Mybatis执行sql语句时,第一步就是调用我们自定义的Mapper执行相应的方法,Mybatis框架根据接口定义创建接口的动态代理对象,代理对象的方法体同Dao接口实现类方法。这里详细的分析一下Mybatis是如何做到的。前期准备跟上次调试代码一样,这次我们把断点打到getMapper这一步代码调试进入sqlSession.getMapper(UsersMapper.class);发现调用了configuration的getMappe原创 2021-03-21 20:44:33 · 156 阅读 · 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 · 995 阅读 · 3 评论