![](https://img-blog.csdnimg.cn/20201014180756724.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Mybatis源码
文章平均质量分 72
白鸽呀
这个作者很懒,什么都没留下…
展开
-
Mybatis 大数据量批量写优化
如果字段和行数非常多,那么sql必然也会很长,占位符也会非常多,除此之外还要建立占位符和参数之间的映射,那么解析时间必然会长。如果非要使用 foreach 的方式来进行批量插入的话,可以考虑减少一条 insert 语句中 values 的个数,最好能达到上面曲线的最底部的值,使速度最快。从理论上将,复用conn,将多次io,转换成一次io,应该是提升效率的。当表的列数较多(20+),以及一次性插入的行数较多(5000+)时,整个插入的耗时十分漫长,达到了14分钟,这是不能忍的。原创 2023-04-25 17:35:59 · 565 阅读 · 1 评论 -
Mybatis源码剖析之插件interceptor执行原理
预读mybatis通过插件 对(Executor、StatementHandler、ParameterHandler、ResultSetHandler) 这四个 核心对象创建代理进行拦截对mybatis来说插件就是拦截器,用来增强核心对象的功能,增强功能本质上是借助于底层的 动态代理实现的,换句话说,MyBatis中的四大对象都是代理对象Mybatis核心对象介绍MyBatis的主要的核心部件有以下几个:Configuration 初始化基础配置,比如MyBatis的别名等,一些重要的类型对象原创 2022-01-17 17:24:18 · 1000 阅读 · 0 评论 -
Mybaits源码剖析之自定义插件interceptor
预读我们知道插件默认对Executor,StatementHandler,ParameterHandler,ResultSetHandler 进行拦截.对mybatis来说插件就是拦截器,用来增强核心对象的功能,增强功能本质上是借助于底层的 动态代理实现的,换句话说,MyBatis中的四大对象都是代理对象Mybatis所允许拦截的方法如下:执行器Executor (update、query、commit、rollback等方法);SQL语法构建器StatementHandler (pre原创 2022-01-17 16:11:26 · 367 阅读 · 0 评论 -
Mybatis源码剖析之二级缓存
序言mybatis默认开启一级缓存,一级缓存存在于Executor中,而executor存在于sqlSession中,因此一级缓存可以当作在sqlSession生命周期中。与一级缓存不同,二级缓存和具体的命名空间绑定,一个Mapper中有一个Cache,相同Mapper中的MappedStatement共用一个Cache,一级缓存则是和 SqlSession 绑定。准备启用二级缓存1、开启全局二级缓存配置:<settings><setting name="cacheEnabl原创 2022-01-15 16:10:01 · 412 阅读 · 0 评论 -
Mybatis源码剖析之Mybatis执行流程(proxy 代理)
预读Mybatis在设计上,分为三层:接口层,数据处理层,框架支持层在接口层中,分为传统模式:通过sqlSession + statementId。接口代理模式:sqlSession+mapper接口准备<configuration> <!--加载外部的properties文件--> <properties resource="jdbc.properties"></properties> <!--开启全局的二级原创 2022-01-15 14:48:09 · 518 阅读 · 0 评论 -
mybatis源码剖析之typeAlias类型别名
mybatis默认定义了许多的类型别名,用来简化mapper.xml的编写从mybatis执行流程分析可知,typeAlias是mybatis解析核心配置文件的时候封装的过程分析1、通过classLoader 读取核心配置文件 为输入流注意:只要是流,底层就是数组,那么就存在两个指针 一个position指向数组存储元素的后一个节点,一个limit指向尾节点2、解析配置文件,封装Configuration对象 创建DefaultSqlSessionFactory对象通过XMLCon原创 2022-01-15 13:56:00 · 373 阅读 · 0 评论 -
Mybatis源码剖析之Mybatis执行流程(传统方式)
预读Mybatis在设计上,分为三层:接口层,数据处理层,框架支持层在接口层中,分为传统模式:通过sqlSession + statementId。接口代理模式:sqlSession+mapper接口准备userMapper.xmlmybatis核心配置文件<configuration> <!--加载外部的properties文件--> <properties resource="jdbc.properties"></prop原创 2022-01-15 11:59:25 · 336 阅读 · 0 评论 -
Mybatis源码剖析之Mybatis架构设计以及核心组件作用
架构设计核心组件作用原创 2022-01-14 10:40:04 · 122 阅读 · 0 评论