mybatis3
文章平均质量分 74
seasonsbin
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Mybatis源码学习-reflection工具包一
reflection工具包mybatis3为简化反射操作,对java 反射API的二次封装,relection工具包是mybatis3 3层架构中的基础工具层,同时,mybaits声明周期中的所有new操作都有该包来完成,因此学习reflection能帮助我们了解mybatis3的执行原理,也可以在实际开发工作中单独使用该模块。反射工具包结构如下:其中,factory 负责所有mybatis声明周期相关对象的创建,其结构如下:factory包提供了一个接口和一个默认实现类,下面贴出根据个原创 2021-04-29 17:26:12 · 323 阅读 · 0 评论
-
Mybatis Configuration
Configuration类是mybatis核心配置类,无论是全局配置文件还是mapping配置文件亦或是注解,所有的配置最终都会维护Configuration中,所以解读Configuration类,是学习mybatis的重中之重。本文不会和其他博客一样列出xml配置文件,然后在每一个属性上标上注释,而是采取在源码上编写注释来达到学习的目的,一来,这样更加直观,记忆更深刻。二来,去XML配置化,全面拥抱注解是已经成为当今主流的开发方式,因此本人侧重点也是注解,而非xml。除了把mybatis官网上原创 2021-04-28 14:51:45 · 884 阅读 · 0 评论
-
Mybatis 源码编译
本次构建基于github mybaits3 maven 当前最新版本。该项目包含两个project,即parent-master(33-SNAPSHOT)和mybatis-master(3.3.0-SNAPSHOT),IDE使用Intellij 2020.3社区版,parent-master下载链接:https://github.com/mybatis/parent,mybatis-master下载链接:https://github.com/mybatis/mybatis-3。由于环境限制,本次源码码.原创 2021-04-27 11:42:01 · 958 阅读 · 0 评论
-
Mybatis-Reflector
Mybatis是一个ORM(Object Relation Mapping)框架,既然是ORM框架,那么DB与POJO之间的相互映射必然是其重要工作之一。Reflector是对反射的二次封装。它更侧重于增强getter/setter方法。Reflector对Getter/Setter的增强主要围绕以下几点:1.缓存Class信息,提高效率。缓存class信息实际上并不是由Reflector本身来完成的,而是由ReflectorFactory接口负责,其接口定义如下:/** * 缓存Refle原创 2021-06-24 17:01:54 · 337 阅读 · 0 评论 -
MyBatis ObjectWrapper
MyBatais ObjectWrapper原创 2021-06-03 14:00:45 · 608 阅读 · 1 评论 -
Mybatis Invoker
Mybatis中的Invoker对反射API中的Field.get () Fielid.get()Method.invoke()三个方法进行了二次封装,将一些模板式的代码进行了封装,在新的版本中,还加入了安全检查。其结构如下:接口定义:/** * @author Clinton Begin */public interface Invoker { Object invoke(Object target, Object[] args) throws IllegalAccessE..原创 2021-05-19 18:16:52 · 381 阅读 · 1 评论 -
Mybatis PropertyTokenizer
PropertyTokenizer,比较常见的中文叫法是属性分词器,顾名思义,就是用来将属性表达式解析为Bean的字段。其主要功能有两个,1.将目标表达式一 一 解析为目标对象的字段名。2.对于有List|Array类型的表达式,PropertyTokenizer不但会把其属性名解析出来,还会将下标|key解析出来,有了下标|key,我们就可以操作指定下标|key的集合|map属性。属性表达式我把它分为两类,一般表达式和嵌套表达式一般表达式:只有一个属性构成,e.g:companyName.原创 2021-05-19 17:09:35 · 1406 阅读 · 1 评论 -
MyBatis MetaObject
1.操作Bean的字段Bean:public class ShouldGetAndSetField { /** * 无getter/setter 叫字段 * 有getter/setter 叫属性 * 假设我们现在要操作一个私有字段 * */ private String simpleField;}Test Case: @Test @DisplayName("get/set目标对象的私有字段值") void shouldGetAnd...原创 2021-05-13 18:43:14 · 690 阅读 · 2 评论
分享