深入理解MyBatis
文章平均质量分 92
dengjili
一个人在党性、真诚、智慧三样东西中,只可能拥有两样
update by 2022/2/9
同时拥有党性、真诚、智慧,已经不是普通人
展开
-
【深入理解MyBatis】- 10Mybatis 缓存Cache实现
概述Mybatis 缓存Cache是自己实现的,采用了简单+扩展性极强的装饰者模式实现,下图为缓存Cache实现体系Cache实现缓存Cache统一接口,由于实现是基于Map实现的,提供的方法名称基本上与Map接口一致public interface Cache { /** * @return 标识 */ String getId(); void putObject(Object key, Object value); Object getObject(Object key)原创 2020-09-16 15:53:39 · 248 阅读 · 0 评论 -
【深入理解MyBatis】- 09Mybatis 从数据库中读取数据源码分析
前景回顾从01从数据库中读取数据过程章节我们从整体明白了使用Mybatis访问数据库的过程,现在从代码实现的角度来看Mybatis是如何实现的Mybatis叙述简述构造由XML配置的对象Configuration,下面说明一个最简单的系统XML配置,Configuration包含数据库连接管理等信息<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE configuration PUBLIC "-//mybatis.org//D原创 2020-09-09 22:47:50 · 697 阅读 · 0 评论 -
【深入理解MyBatis】- 08Mybatis 类型封装TypeParameterResolver
基本使用TypeParameterResolver能做什么?获取字段的类型,如String name;中的String获取方法返回值类型,如Double simpleSelect();中的Double获取方法入参类型,如void simpleSelectVoid(Integer param);中的Integer基本使用例子import static org.junit.Assert.assertEquals;import java.lang.reflect.Field;import j原创 2020-08-05 00:11:04 · 357 阅读 · 0 评论 -
【深入理解MyBatis】- 07Mybatis 反射器Reflector源码
反射器类Reflector结构Reflector反射器类对Class<?> type字段、方法封装,依赖于java Class对象实现,上述图片为Reflector结构关系,主要是将对象字段、方法封装起来Reflector源码分析public class Reflector { private final Class<?> type; private final String[] readablePropertyNames; private final Strin原创 2020-07-29 22:08:08 · 380 阅读 · 0 评论 -
【深入理解MyBatis】- 06Mybatis 源对象MetaObject使用
MetaObject简介MetaObject对象是Mybatis框架用于访问对象属性的工作类,底层实现为java的反射基础。目前只支持JavaBean、Collection、Map三种类型对象访问,也可以自定义其他类型Bean访问例子public class BeanTest { public static void main(String[] args) { Person person = new Person(); MetaObject metaObject = SystemMetaOb原创 2020-07-28 22:10:18 · 3415 阅读 · 0 评论 -
【深入理解MyBatis】- 05Mybatis 从0开始实现Mybatis XML解析功能
接下来就准备相关文档的描述,暂定出文档,先排版原创 2020-07-12 22:36:06 · 191 阅读 · 0 评论 -
【深入理解MyBatis】- 04Mybatis 从0开始实现Mybatis 占位符替换${}功能
Mybatis 占位符替换${}简介在Mybatis的配置文件中,可以使用类型${username}这种占位符配置,将具体配置的属性单独统一的配置文件中,使用如下mybatis-config.xml<dataSource type="POOLED"> <property name="driver" value="${driver}"/> <property name="url" value="${url}"/> <prope原创 2020-07-12 15:25:28 · 1563 阅读 · 1 评论 -
【深入理解MyBatis】- 03Mybatis 从0开始实现Mybatis 插件(plugins)功能
Mybatis 插件(plugins)简介Mybatis 插件像是个拦截器,本质上是JDK动态代理的封装,返回了代理对象,起到了拦截器作用,接下来将按照从0开始实现Mybatis 插件(plugins)功能,再使用一下Mybatis插件应用一下,这里实现并不是与Mybatis Plugin代码一模一样,有一些简化和优化,更加方便理解简单版拦截器功能 v0.1定义拦截器public interface Interceptor { Object intercept(Object target, Me原创 2020-07-02 23:46:56 · 210 阅读 · 0 评论 -
【深入理解MyBatis】- 02Mybatis连接池pool讲解和简要实现
连接池概念空闲连接队列与活跃队列获取connection,空闲连接队列与活跃队列均为空时获取connection,空闲连接队列不为空获取connection,活跃连接队列已经满了原创 2020-07-01 09:52:33 · 734 阅读 · 0 评论 -
【深入理解MyBatis】- 01从数据库中读取数据过程
初始化项目执行命令从github上面拉取代码:git clone git@github.com:dengjili/mybatis-3-mybatis-3.4.6.git执行mysql数据库脚本:mybatis-3-mybatis-3.4.6/src/test/java/priv/mybatis/example01/sql/role.sql更改mysql数据库配置:/mybatis-3-mybatis-3.4.6/src/test/resources/priv/mybatis/example01/my原创 2020-06-21 15:23:13 · 1039 阅读 · 0 评论 -
深入理解MyBatis概述介绍
概述计划做一期MyBatis原理讲解,内容主要包括MyBatis原理和相关技术的讲解选择阅读的mybatis版本为3.4.6,对应链接,选择依据,查看Maven Repository mybatis引用最多的版本,对应链接,切记不要选最新版本,选择一个稳定版本即可分析思路根据MyBatis官网教程路线讲解,官网链接 文章【深入理解MyBatis】- 01从数据库中读取数据作用梳理MyBatis流程和相关技术总结提高UML设计能力,采集PPT撰写相关流程...原创 2020-06-21 11:37:19 · 225 阅读 · 0 评论