![](https://img-blog.csdnimg.cn/20201014180756922.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
mybaits
文章平均质量分 89
野生技术协会
杂乱个人资料记录
展开
-
mybaits源码分析(八) StatementHandler的详解
mybaits源码分析(八) StatementHandler的详解 概述:StatementHandler是主要负责处理MyBatis与JDBC之间Statement的交互,通俗而言就是负责操作Statement对象与数据库之间的交互。其执行过程中主要依赖ParameterHandler和ResultSetHandler进行参数绑定和结果实体类绑定。一、类介绍1、StatementHandler的类层级 StatementHandler: 顶级接口, 定义了u...原创 2021-02-06 23:54:54 · 550 阅读 · 4 评论 -
mybaits源码分析(七) SqlSource及动态sql解析详细分析
SqlSource及动态sql解析 mybaits可以通过#{}的方式插值,也可以${}方式拼接,另外一个最强大的功能就是可以动态的解析sql语句,而不管动态解析还是静态解析,sql都是通过不同的SqlSource实现进包装的,本文将深入讲解动态sql解析。 一、sql解析加载的分析1、主干解析方法XMLScriptBuilder的parseScriptNode。a) 解析<select>语句标签的Node节点 public SqlSource par...原创 2021-02-06 23:47:58 · 594 阅读 · 3 评论 -
mybaits源码分析(六) 基础支持模块-反射-Io-类型处理
mybaits基础支撑 概述: mybaits的核心处理工作是由Executor、StatementHandler、ResultHandler、paramHandler四个模块处理整个sql执行过程,在这些过程中,主要对配置解析的一些MapperStatement、SqlSource、ResultMap、ParameterMapping这些参数型对象,进行处理工作,最终生成真实sql执行的过程,而本文主要讲解一些基础支撑的模块,方便后续的分析。 本文主要分析三个...原创 2021-02-06 00:06:27 · 275 阅读 · 4 评论 -
mybaits源码分析(五) 一级缓存、二级缓存最详细讲解
mybaits源码分析(五) 一级缓存、二级缓存详解前言:上一篇讲解了mybaits数据源,这一篇讲解一下mybaits一级缓存、二级缓存的基本使用,以及主要实现。本篇主要分为下面几个部分:一级缓存、二级缓存的使用及测试mybaits缓存相关类的介绍一级缓存详解二级缓存详解一、一级缓存、二级缓存的使用及测试在mybaits中,一级缓存是默认开启的,缓存的生命周期是sqlsession级别的,二级缓存全局配置是默认开启的,但是需要另外在namespace中也开启才可以使用二原创 2021-02-04 23:42:48 · 329 阅读 · 3 评论 -
mybaits源码分析(四) mybaits数据源详解
mybaits源码分析(四) 数据源前言:对于ORM框架,数据源都是不可或少的组件,虽然mybaits框架整合spring时,可以由外部指定数据源对象,构建到SqlSessionFactoryBean中,但是对于mybaits自身对数据源的实现原理还是值得探究的,本文将通过对MyBatis框架的数据源结构进行详尽的分析,并且深入解析MyBatis的连接池。本文内容初步分为下面几个部分 mybaits数据源的概述 mybaits数据源的构建和使用...原创 2021-02-03 23:08:44 · 600 阅读 · 3 评论 -
mybaits源码分析(三) 事务管理
mybaits源码分析(三) 事务管理前言:在mybaits源码分析(一) 核心执行流程事务这一块几乎是没讲到过。本篇主要讲解mybaits事务管理的实现机制,介绍mybaits事务设计接口和不同的实现,以及不同的事务实现JdbcTransaction 和 ManagedTransaction的具体实现不同,并且对mybaits配置文件解析,创建事务对象和实际使用的流程进行了分析。一、概述: 对数据库的事务而言,应该具有以下几点:创建(create)、提交(commi...原创 2021-02-02 21:44:29 · 208 阅读 · 3 评论 -
mybaits源码分析(二) 配置解析
mybaits源码分析(二) 配置解析 概述: 从上篇我们知道,mybaits在构建SqlsessionFacotry,实际是调用一系列的BaseBuilder的子类(内有configuration属性),来完成各种xml配置的解析,而实际上解析工作,是由XPathParser和包装dom节点node的Xnode完成解析工作。下面是XMLConfigBuilder的部分代码。 private XPathParser parser; // xpath解析器 public XMLC...原创 2021-02-02 20:38:47 · 225 阅读 · 3 评论 -
mybaits源码分析(一) 核心执行流程
本文主要介绍mybaits的核心执行过程的源码分析,我们按照xml配置的方式,建立一个查询的demo,测试代码如下@Test public void test2() throws Exception { InputStream in = Resources.getResourceAsStream("custom/sqlMapConfig2.xml"); SqlSessionFactory factory2 = new SqlSessionFactoryBuilder().build(in)原创 2021-02-01 22:32:14 · 213 阅读 · 3 评论