mybatis
little sky
little sky
展开
-
面试官问你MyBatis SQL是如何执行的?
MyBatis 整体架构MyBatis 最上面是接口层,接口层就是开发人员在 Mapper 或者是 Dao 接口中的接口定义,是查询、新增、更新还是删除操作;中间层是数据处理层,主要是配置 Mapper -> XML 层级之间的参数映射,SQL 解析,SQL 执行,结果映射的过程。上述两种流程都由基础支持层来提供功能支撑,基础支持层包括连接管理,事务管理,配置加载,缓存处理等。接口层...原创 2020-02-16 11:05:49 · 782 阅读 · 0 评论 -
Mybatis 中使用的 9 种设计模式
1、Builder模式2、工厂模式3、单例模式4、代理模式5、组合模式6、模板方法模式7、适配器模式8、装饰者模式9、迭代器模式虽然我们都知道有23个设计模式,但是大多停留在概念层面,真实开发中很少遇到Mybatis源码中使用了大量的设计模式,阅读源码并观察设计模式在其中的应用,能够更深入的理解设计模式。Mybatis至少遇到了以下的设计模式的使用:1、Builder模式,...转载 2020-01-12 17:34:28 · 177 阅读 · 0 评论 -
浅析Mybatis的Executor原理
当我们读取完配置文件,将我们的Mybatis配置成我们想要的要的样子之后,我们就要使用他对数据库进行一系列操作(增删改查)。而SqlSession这个看似无所不能的操作达人,其实是找了代练的。SqlSession将一切数据库具体操作委托给背后的Executor。Executor 类结构图我们先认识一下最大的大佬Executor; int update(MappedStatement ms...原创 2020-01-11 12:14:17 · 431 阅读 · 0 评论 -
mybatis整体架构以及执行流程
一、MyBatis简介MyBatis框架是一种轻量级的ORM框架,当下十分流行,配合Spring+Spring MVC组成SSM框架,能够胜任几乎所有的web项目工程。MyBatis不同于Hibernate的最重要的地方就是SQL部分,MyBatis中你可以自己编写灵活的SQL代码,而在Hibernate基本上将SQL代码封装起来的,几乎不会用到程序员去编写,这是Hibernate的优秀之处(...原创 2019-05-07 06:28:17 · 884 阅读 · 0 评论 -
mybatis的sql执行流程
最近一直在看mybatis的源码,也在网上看了很多优秀mybatis源码的总结,在规划写出一系列mybatis的文章。一、sqlsession与sqlsessionfactory的关系(1)(1)首先,SqlSessionFactoryBuilder去读取mybatis的配置文件,然后build一个DefaultSqlSessionFactory。源码如下:public SqlSessio...原创 2019-05-08 14:30:37 · 1192 阅读 · 0 评论 -
mybatis的缓存分析
慢慢的喜欢上写博客,一休息下来,就想去写一些想写的东西,然后去看看一些相关优秀的博客,加上自己的理解,慢慢地沉淀下来,做一只幸福的小朱。一级缓存一级缓存介绍在应用运行过程中,我们有可能在一次数据库会话中,执行多次查询条件完全相同的SQL,MyBatis提供了一级缓存的方案优化这部分场景,如果是相同的SQL语句,会优先命中一级缓存,避免直接对数据库进行查询,提高性能。具体执行过程如下图所示。...原创 2019-05-11 17:05:54 · 189 阅读 · 0 评论 -
MyBatis底层实现原理: 动态代理的运用
一日小区漫步,我自己问自己:Mybatis中声明一个interface接口,没有编写任何实现类,Mybatis就能返回接口实例,并调用接口方法返回数据库数据,你知道为什么不?这激发了我写本篇文章的冲动。动态代理的功能:通过拦截器方法回调,对目标target方法进行增强。言外之意就是为了增强目标target方法。上面这句话没错,但也不要认为它就是真理,殊不知,动态代理还有投鞭断流的霸权,连目...原创 2019-11-24 16:21:24 · 513 阅读 · 0 评论