
MyBatis源码解析
深入解析MyBatis源码
在云端123
这个作者很懒,什么都没留下…
展开
-
MyBatis源码解析(六) --- 连接池
mybatis支持3种数据源:UNPOOLED,POOLED,JNDI UNPOOLED UnPooledDataSource的getConnection()方法实现如下: /* * 获取数据连接 */ private Connection doGetConnection(Properties properties) throws SQLException { //1.初始化驱动 ...原创 2019-09-15 23:58:30 · 229 阅读 · 1 评论 -
MyBatis源码解析(五) --- SQL执行流程
前面分析了配置文件和映射文件的解析过程。经过前面复杂的解析过程后,现在, MyBatis 已经进入了就绪状态,等待使用者发号施令。本章将对 MyBatis 执行 SQL 的过程进 行较为详尽的分析。包括但不限于以下技术点: 为 mapper 接口生成实现类 根据配置信息生成 SQL,并将运行时参数设置到 SQL 中 一二级缓存的实现 插件机制 数据库连接的获取与管理 查询结果的处理,以及延迟加载...原创 2019-08-11 23:17:26 · 512 阅读 · 1 评论 -
MyBatis源码解析(四) --- 解析Mapper节点
映射文件包含多种二级节点,比如 ,,以及 <select|insert|update|delete> 等。除此之外,还包含了一些三级节点,比如 ,, 等。这些节点的解析过程将会在接下来的内容中陆续进行分析。在分析之前,我们 先来看一个映射文件配置示例。 <mapper namespace="xyz.coolblog.dao.AuthorDao"> <cac...转载 2019-08-11 20:56:44 · 352 阅读 · 1 评论 -
MyBatis源码解析(三) --- 映射文件解析
映射文件用于配置 SQL 语句,字段映射关系等。映射文件中包含、、、、 <select|insert|update|delete>等二级节点,这些节点将在接下来内容中进行分析。 1、映射文件解析解析入口 映射文件的解析过程是配置文件解析过程的一部分,MyBatis 会在解析配置文件的过程 中对映射文件进行解析。解析逻辑封装在 mapperElement 方法中,下面来看一下。 // -...转载 2019-08-11 17:25:42 · 224 阅读 · 1 评论 -
MyBatis源码解析(二) --- 反射模块Reflector
本文主要介绍MyBatis的反射模块是如何实现的。 DefaultReflectorFactory 源码分析 基础支持层反射模块Reflector/ReflectorFactory,DefaultReflectorFactory 用于创建 Reflector,同时兼有缓存的功能,它的源码如下。 public class DefaultReflectorFactory implements Ref...转载 2019-08-11 10:25:09 · 503 阅读 · 2 评论 -
MyBatis源码解析(一) --- 配置文件解析
MyBatis给我们提供丰富的配置来满足我们的需求,本文会对MyBatis的配置文件解析过程进行分析, 其中包含但不限于 properties、 settings、typeAliase、typeHandlers 等。 1、配置文件解析入口 在单独使用 MyBatis 时,第一步要做的事情就是根据配置文件构建SqlSessionFactory对象。相关代码如下: String resource = ...转载 2019-08-11 12:18:43 · 322 阅读 · 1 评论