mybatis源码解析1--前言】的更多相关文章

一,前言 我们在文章:Mybatis源码解析,一步一步从浅入深(二):按步骤解析源码的最后一步说到执行查询的关键代码: result = sqlSession.selectOne(command.getName(), param); selelectOne方法有两个参数: 第一个参数是:com.zcz.learnmybatis.dao.UserDao.findUserById 第二个参数是:1(Integer类型,就是我们传入的参数id:1,我们是期望通过这个id查询到我们想要的结果) 因为接下…
MyBatis缓存 我们知道,频繁的数据库操作是非常耗费性能的(主要是因为对于DB而言,数据是持久化在磁盘中的,因此查询操作需要通过IO,IO操作速度相比内存操作速度慢了好几个量级),尤其是对于一些相同的查询语句,完全可以把查询结果存储起来,下次查询同样的内容的时候直接从内存中获取数据即可,这样在某些场景下可以大大提升查询效率. MyBatis的缓存分为两种: 一级缓存,一级缓存是SqlSession级别的缓存,对于相同的查询,会从缓存中返回结果而不是查询数据库 二级缓存,二级缓存是Mapper…
XMLLanguageDriver是ibatis的默认解析sql节点帮助类,其中的方法其会调用生成DynamicSqlSource和RawSqlSource这两个帮助类,本文将对此作下简单的简析 应用场景 我们在编写mybatis的sql语句的时候,经常用到的是#{}的字符去替代其中的查询入参,偶尔也会在网上看到${}这样的字符使用.其实前者调用的为RawSqlSource帮助类进行生成具体的sql,而后者则是通过DynamicSqlSource帮助类来实现的. 选用逻辑 我们还是回到ibati…
目录 1. 简介 2. 解析 3 StrictMap 3.1 区别HashMap:键必须为String 3.2 区别HashMap:多了成员变量 name 3.3 区别HashMap:key 的处理多了一些变化 3.3.1 put 3.3.2 shortKey 3.3.3 Ambiguity 3.3.4 get 一起学 mybatis @ 相关文章推荐 mybatis 缓存的使用, 看这篇就够了 mybatis源码-解析配置文件(四)之配置文件Mapper解析 1. 简介 本文章主要讲解的是,…
在 mybatis源码-解析配置文件(三)之配置文件Configuration解析 中, 讲解了 Configuration 是如何解析的. 其中, mappers作为configuration节点的一部分配置, 在本文章中, 我们讲解解析mappers节点, 即 xxxMapper.xml 文件的解析. 1 解析入口 在解析 mybatis-config.xml 时, 会进行解析 xxxMapper.xml 的文件. 在图示流程的 XMLConfigBuilder.parse() 函数中, 该…
目录 1. 简介 1.1 系列内容 1.2 适合对象 1.3 本文内容 2. 配置文件 2.1 mysql.properties 2.2 mybatis-config.xml 3. Configuration 类及其解析 3.1 解析入口 3.2 常用函数 3.2.1 获取节点 3.2.2 获取子节点 3.2.3 获取子节点并存到 Properties 对象中 3.3 节点相关成员变量及其解析 3.3.1 properties 属性相关 3.3.2 settings 属性相关 3.3.3 typ…
Spring SpringMVC Mybatis(简称ssm)是一个很流行的java web框架,而Mybatis作为ORM 持久层框架,因其灵活简单,深受青睐.而且现在的招聘职位中都要求应试者熟悉Mybatis框架.我认为有必要分析一下Mybatis的源码.在进行源码分析前,先准备一个简单的工程.如果你还不会使用maven请参考:Maven 创建项目之简单示例,创建一个简单的工程. 开发工具:eclipse jdk版本:1.8 1,创建好的工程目录如下图所示: 2,现在来添加工程的依赖包,配置…
在文章:Mybatis源码解析,一步一步从浅入深(一):创建准备工程,中我们为了解析mybatis源码创建了一个mybatis的简单工程(源码已上传github,链接在文章末尾),并实现了一个查询功能.接下来就顺着查询功能的实现开始一步一步开始解析mybatis源码. 首先们观察我们的测试代码类UserDaoTest: package com.test.learnmybatis; import org.apache.ibatis.io.Resources; import org.apache.i…
在上一篇文章:Mybatis源码解析,一步一步从浅入深(二):按步骤解析源码 ,中我们看到 代码:XMLConfigBuilder parser = new XMLConfigBuilder(reader, environment, properties); 使用读取的configuration.xml字符输入流作为参数,使用XMLConfigBuilder类的三个参数的构造器实例化一个xml配置解析器(XMLConfigBuilder),并且 environment, properties的值…
在Mybatis源码解析,一步一步从浅入深(二):按步骤解析源码中我们看到了XMLConfigBuilder(xml配置解析器)的实例化.而且这个实例化过程在文章:Mybatis源码解析,一步一步从浅入深(三):实例化xml配置解析器(XMLConfigBuilder)也进行了详细的阐述. 那么接下来就是解析configuration.xml并将configuration.xml中的配置信息加载到Configuration实例对象中去. 一,先来看看代码的位置 在文章:Mybatis源码解析,一…