E-COM-NET
首页
在线工具
Layui镜像站
SUI文档
联系我们
推荐频道
Java
PHP
C++
C
C#
Python
Ruby
go语言
Scala
Servlet
Vue
MySQL
NoSQL
Redis
CSS
Oracle
SQL Server
DB2
HBase
Http
HTML5
Spring
Ajax
Jquery
JavaScript
Json
XML
NodeJs
mybatis
Hibernate
算法
设计模式
shell
数据结构
大数据
JS
消息中间件
正则表达式
Tomcat
SQL
Nginx
Shiro
Maven
Linux
MYBATIS源码解析
Mybatis源码解析
——Binding模块
Bing将Mapper接口和Mapper.xml文件中的SQL语句相关联,启动时即可检测到错误其UML图如图所示mapperRegistry对象是Mapper接口及其代理对象工厂的注册中心MapperProxyFactory用来创建代理对象流程详解Mybatis初始化时会将所有配置信息映射到Configuration对象中Configuration对象的mapperRegistry字段记录当前使用
Mutou_ren
·
2020-07-27 11:53
mybatis
Mybatis源码解析
之懒加载(一):配置和ResultLoaderMap
Mybatis源码解析
之核心类分析
Mybatis源码解析
之初始化分析
Mybatis源码解析
之执行流程解析
Mybatis源码解析
之数据库连接和连接池
Mybatis源码解析
之事务管理
Mybatis源码解析
之缓存机制
翻身已碰头
·
2020-07-16 07:46
Mybatis
Mybatis源码解析
Mybatis源码解析
优秀博文汇总
最近阅读了许久的mybatis源码,小有所悟。同时也发现网上有许多优秀的mybatis源码讲解博文。本人打算把自己阅读过的、觉得不错的一些博文列出来。以此进一步加深对mybatis框架的理解。其实还有一个目的是,本人也想写一系列博文来分享自己对mybatis的理解。然而。个人文笔太差,列出的这些别人的文章我也会细心研读,并希望在阅读这些文章的同时既加深我对mybatis的理解,又能探索出一种更加通
强迫症Kobe
·
2020-07-16 04:15
MyBatis
MyBatis
源码
深入浅出
Mybatis源码解析
——结果集映射流程
前言在前一篇文章中,笔者补上了一篇文章,在那篇文章中,主要说了关于SQL语句的执行流程,当SQL执行完成后,那么肯定会返回一个结果集,对于这样的结果集是需要做一个映射的,就譬如你所返回的数据是表中的数据,但是要映射成Java中的实体类对象,便需要进行映射处理。说起来很抽象,那么就不多说了,还是直接进入主题,来看看在源码中是怎么实现的。一、包装结果列元信息对象在进入正文之前,还需要再回顾一下关于结果
不才人pat
·
2020-07-15 12:12
Mybatis源码解析
Mybatis源码解析
(四)-配置加载初始化(建造者模式)
@[TOC]配置加载初始化—》建造者模式#MyBatis在我们的开发中,主要是各种配置文件是特别多,包括mybatis-config.xml和各种mapp.xml文件,这些配置文件是程序启动的时候加载到内存中,并且实例化mybatis相关的实例对象,这个实例化,解析的过程是非常复杂。主要涉及SqlSessionFactoryBuilder,XMLConfigBuilder、XMLMapperBui
xJTechnology
·
2020-07-15 10:09
mybatis源码解析
(一)配置文件解析
下面是我看源码的几点经验供你们参考:一,官方文档不可忽视,官网文档是最准确,最核心的知识宝库,你可以从这里获取到开发团队的思想,设计概要。二,英文很重要,由于我们都使用国外的技术,所以英语是很重要的,我很反对有些培训机构说的英文无用论,除非你一辈子相当码农。三,demo先行,官网中的demo是我们入门写的helloworld,几行代码凝聚着作者深藏在代码的核心,如果没有demo你就像一只无头苍蝇一
复制粘黏工程师
·
2020-07-15 06:12
mybatis
MyBatis源码解析
(二)——Environment环境
原创作品,可以转载,但是请标注出处地址:http://www.cnblogs.com/V1haoge/p/6625612.html本应该先开始说Configuration配置类的,但是这个类有点过于复杂,因为MyBatis中的所有配置项全部在这个类中,可谓包罗万象,一开始就讨论如此高大上的东西,貌似有点不合适,认识和学习都应该从小开始,从基础开始,所以我做了这样一个小安排,先挑Configurat
weixin_30678349
·
2020-07-15 03:06
Mybatis源码解析
(一) SqlSessionFactory 初始化
文章目录SqlSessionFactory创建一个SqlSessionFactorymappers配置Xml映射文件解析XML映射文件解析流程解析XML映射文件Xml映射文件接口绑定SqlSessionFactory每个基于MyBatis的应用都是以一个SqlSessionFactory的实例为核心的。SqlSessionFactory的实例可以通过SqlSessionFactoryBuilder
wuhulala
·
2020-07-15 01:44
mybatis
Mybatis源码解析
mybatis源码解析
一 xml解析(解析器)
最近闲来无事,看着一些源码类的书籍,只是光看,好像并不能给自己很好的益处,无法记下来,所以就有了这个
Mybatis源码解析
系列的博客。
程序袁_哈哈
·
2020-07-15 00:28
mybatis源码系列
源码
MyBatis源码解析
——获取SqlSessionFactory
我们都知道,在Mybatis中,对数据库的增删改查,实际上是由SqlSession来操作的,而SqlSession又是从SqlSessionFactory中得到的,那么问题来了,SqlSessonFactory是如何获得的呢?今天我们一起来解读一下Mybatis是如何加载配置文件,从而获取SqlSessionFactory的。首先,从Resources.getResourceAsReader(pa
rz_0212
·
2020-07-14 21:47
Mybatis
mybatis源码解析
(一)
mybatis原理解析测试类开始进行测试@Testpublicvoidtest01()throwsIOException{SqlSessionFactorysqlSessionFactory=newSqlSessionFactoryBuilder().build(Resources.getResourceAsReader("mybatis-config.xml"));SqlSessionsqlSe
Jk_1024
·
2020-07-14 20:12
Mybatis源码解析
之事务管理
Mybatis源码解析
之核心类分析
Mybatis源码解析
之初始化分析
Mybatis源码解析
之执行流程解析
Mybatis源码解析
之数据库连接和连接池一、事务简介1.事务的特性(ACID)(1)原子性(Atomicity
翻身已碰头
·
2020-07-14 19:37
Mybatis
Mybatis源码解析
Mybatis源码解析
之缓存机制(一):一级缓存
Mybatis源码解析
之核心类分析
Mybatis源码解析
之初始化分析
Mybatis源码解析
之执行流程解析
Mybatis源码解析
之数据库连接和连接池
Mybatis源码解析
之事务管理一、CacheKeyCacheKey
翻身已碰头
·
2020-07-14 19:37
Mybatis
Mybatis源码解析
Mybatis源码解析
之初始化分析
Mybatis源码解析
之核心类分析Mybatis的初始化过程就是mybatis配置文件的解析过程并将解析结果保存到Configuration类。
翻身已碰头
·
2020-07-14 19:36
Mybatis
Mybatis源码解析
Mybatis
源码
初始化
配置文件
Mybatis源码解析
之四大对象
一环境准备以一个最简单的例子来看看Mybatis的运行流程以及Mybatis四大对象起了什么作用。Employee.javapackagecom.lxj.bean;publicclassEmployee{privateIntegerid;privateStringlastName;privateStringemail;privateStringgender;publicIntegergetId()
刘信坚的博客
·
2020-07-14 19:26
后端
java
网站
【
Mybatis源码解析
第二章】搭建Mybatis源码阅读环境
缘起看完了第一章的内容,想必你已经对jdbc的使用复习了一遍。那么如果我们要使用Mybatis实现上一章的查询数据的功能,应该怎么写呢?你可以在项目中引入Mybatis的jar包,然后书写相关查询代码。但是我们是主要研究源码,如果采用jar包的方式调试的时候会有诸多不便。所以我们需要先搭建Mybatis的源码阅读环境。源码下载并导入idea首先去github下载mybatis的源码,本处所用源码为
诺浅
·
2020-07-14 16:54
Mybatis
MyBatis源码解析
之——初始化细节
先说下大体思路,Spring整合Mybatis,在Spring的初始化链中主要有以下几个重要步骤:1、obtainFreshBeanFactory方法负责解析MyBatis的服务层Bean,即:ServiceBean,因为这些ServiceBean是通过注解@Service声明的,通常会在ServiceBean中注入XxxMapper。——这是Spring的正常操作,本文就不贴代码了。2、invo
lsunwing
·
2020-07-14 14:47
Mybatis
MyBatis源码解析
- 解析器模块
MyBatis源码解析
-解析器模块1.前言在MyBatis中涉及多个xml文件,解析这些xml文件自然离不开解析器。本文就来分析一下解析器模块。
澈澈丶
·
2020-07-14 14:21
Mybatis源码解析
5——SqlSessionFactory
在Executor的解析一篇中我已经大致的分析了SqlSessionFactory对于创建SqlSession的工作,现在来进一步的探讨一下SqlSessionFactory的全部内容。回顾之前的研究,已经知道SqlSessionFactory的一部分工作是创建SqlSession,SqlSessionFactory是一个接口,这个接口限定openSession返回的session必需是从连接或数
Imadone
·
2020-07-14 06:26
源码解析
mybatis源码解析
2——Configuration
上一篇解析了SqlSession的源码,本篇继续解读有关流程,继续来看这个例子:publicintupdate(intid){SqlSessionsession=SQLSessionFactory.getSessoinFactory().openSession();inti=session.update(namespace+"updateOne",id);session.commit();sess
Imadone
·
2020-07-14 06:25
源码解析
Mybatis源码解析
——反射工具箱
反射工具箱Reflector一个Class类对应的Reflector对象包括://对应的Class类型privatefinalClasstype;//可读属性(有get方法的)名字数组privatefinalString[]readablePropertyNames;//可写属性(有set方法的)名字数组privatefinalString[]writeablePropertyNames;//se
Mutou_ren
·
2020-07-14 05:46
mybatis
MyBatis源码解析
(二) 解析器模块
mybatis源码解析
系列源码基于3.5.2-SNAPSHOT版本,截至笔者开始写第一篇源码解析时这是官方的最新master分支。
Let_me_tell_you
·
2020-07-14 05:08
Mybatis
源码解析
mybatis源码解析
2---SqlSessionFactoryBuilder、SqlSessionFactory解析
1.先看一个mybatis最简单的DemoStringresource="mybatis-config.xml";//1.流形式读取mybatis配置文件InputStreamstream=Resources.getResourceAsStream(resource);//2.通过配置文件创建SqlSessionFactorySqlSessionFactorysessionFactory=newS
Lee_0202
·
2020-07-14 05:03
mybatis源码解析
xml解析模块
通过
mybatis源码解析
IO读取文件模块了解到mybatis在开始干活前,首先要读取xml文件。通过Resources类将xml文件转为相应的数据流。
Hello_Ray
·
2020-07-14 04:55
mybatis源码
mybatis源码解析
Mybatis源码解析
之执行流程解析
Mybatis源码解析
之核心类分析
Mybatis源码解析
之初始化分析本篇文章将在前两篇文章的基础上解析Mybatis执行sql的流程。
翻身已碰头
·
2020-07-14 02:31
Mybatis
Mybatis源码解析
Mybatis源码解析
Mybatis源码解析
查询测试Demo/***获取SqlSessionFactory对象**@return*@throwsIOException*/privateSqlSessionFactorygetSqlSessionFactory
xcmercy
·
2020-07-14 01:42
Java
MyBatis源码解析
(一)——构造篇
前言好久不见,从上一篇文章过后,休整了两个月,又逢疫情特殊时期,天天宅在家里挺尸,真是见证了一个人可以懒惰到什么境界。好吧废话不多说了,今天会给大家分享我们常用的持久层框架——MyBatis的工作原理和源码解析。说实话MyBatis是我第一个接触的持久层框架,在这之前我也没有用过Hibernate,从Java原生的Jdbc操作数据库之后就直接过渡到了这个框架上,当时给我的第一感觉是,有一个框架太方
ObjectSpace
·
2020-07-14 00:56
技术博客
Mybatis源码解析
之模块解析:详解Mybatis一级缓存和二级缓存
介绍又到了一年面试季,所以打算写一点面试常问的东西,争取说的通俗易懂。面试高级岗,如果你说熟悉Mybatis,下面这些问题基本上都会问Mybatis插件的实现原理?如何写一个分页插件?Mybaits只写了接口为什么能运行?Mybatis的一级缓存和二级缓存的工作原理,会遇到什么问题?一级缓存和二级缓存的生命周期分别是?Mybatis和Spring整合后,一级缓存为什么会失效?同时配置一级缓存和二级
Java识堂
·
2020-07-14 00:43
MyBatis
Mybatis源码解析
(注释/图解流程/测试案例)
Mybatis源码解读源码下载官方文档:操作步骤:1.搭建测试项目:2.架构:3.源码解读主要图:书籍和博客:源码下载官方github地址笔者码云地址官方文档:官方文档地址操作步骤:1.搭建测试项目:a.从笔者的码云下载mybatis项目,里面有大量的注释,帮助阅读源码。b.下载测试案例mybatis-test项目,断点调试。c.按照如下打开两个项目:将mybatis源码项目导入idea中然后在打
深夜萤火虫
·
2020-07-13 11:07
java身边的问题
深入浅出
Mybatis源码解析
——BoundSql获取流程
前言停更了一个多月,博主一直在忙于技术的学习与工作的繁忙之间,其实更多的是迷茫于技术中,但是想想还是要把Mybatis系列继续更新下去。博主也给自己在20年立了几个flag:深入学习Java、研究研究c++、第三个就是健身咯,只要是因为回首2019年,感觉自己在技术学习的道路上是在没走多少,因此想着这次必须要对自己狠一点了。先不多说了,回顾一下前一篇文章,由于时隔太久,笔者都有点记不清了。在前一篇
不才人pat
·
2020-07-12 19:59
Mybatis源码解析
MyBatis源码解析
(三)——Transaction事务模块
原创作品,可以转载,但是请标注出处地址:http://www.cnblogs.com/V1haoge/p/6634151.html1、回顾之前介绍了Environment环境类,这其实是一个单例类,在MyBatis运行开启后只会存在一个唯一的环境实例,虽然我们可以在Configuration配置文件中配置多个环境,但是项目运行中只会存在其中的一个,一般项目会存在开发环境和测试环境、生产环境三大环境
weixin_30468137
·
2020-07-12 06:48
【
Mybatis源码解析
第一章】先说说JDBC
缘起由于mybatis内部实际上是调用的jdbc来完成了对数据库的操作,兵马未动,粮草先行。在讲解mybatis之前有必要先说说jdbc。建表我们先在数据库建一张Test表,表只有两个字段,id和name,有一条数据张三。DDL如下--auto-generateddefinitioncreatetabletest(idvarchar(50)notnullprimarykey,namevarchar
诺浅
·
2020-07-11 15:08
Mybatis
jdbc的使用
jdbc入门
Mybatis源码解析
-mapper解析
为什么写在xml文件中的sql,却可以执行,中间经过了怎样的流程?今天我们就来看一下这个过程。所有的开始源于一个Bean的定义@Value(value="classpath:mybatis/sqlmap/*.xml")privateResource[]mapperLocations;@Value(value="classpath:mybatis/mybatis-config.xml")privat
数齐
·
2020-07-10 04:15
Mybatis源码解析
之配置加载(一)
Mybatis源码解析
之配置加载(一)用了好几年的mybatis了,但是很少来钻研mybatis原理所在,最近抽出空来,就把这一整套源码都研究了下,然后发现就是这些东西,mybatis没啥难度,于是决定把研究的这一整套写一个
叶长风
·
2020-07-10 04:09
java
mybatis
Mybatis源码分析
Mybatis源码解析
(一)-日志模块(适配器模式+代理模式)
@[TOC]日志模块----》适配器模式+代理模式#mybatis在目前的java开发中使用非常频繁,所以接下来几篇文章都是介绍Mybatis主要模块相关源码,从源码中我们可以了解到,mybatis可以说是非常合理的运用了设计模式和设计原则,接下来几篇文章主要从mybatis的日志模块,数据源模块,缓存模块,反射模块。part1:设计原则谈到设计模式,我们首先想到的就是基本的设计原则:单一职责原则
xJTechnology
·
2020-07-06 09:28
mybatis
log4j
java
Mybatis源码解析
(三)-缓存模块(装饰器模式)
@[TOC]缓存模块—》装饰器模式#MyBatis缓存模块需满足如下需求:MyBatis缓存的实现是基于Map的,从缓存里面读写数据是缓存模块的核心基础功能;除核心功能之外,有很多额外的附加功能,如:防止缓存击穿,添加缓存清空策略(fifo、lru)、序列化功能、日志能力、定时清空能力等;附加功能可以以任意的组合附加到核心基础功能之上;基于Map核心缓存能力,将阻塞、清空策略、序列化、日志等等能力
xJTechnology
·
2020-07-06 09:28
Mybatis源码解析
(五)-接口绑定阶段(门面模式+策略模式)
@[TOC]代理封装阶段—》门面模式+策略模式#当前阶段可以说是MyBatis最神秘的阶段,要理解它,就需要对Mybatis的接口层和binding模块数据源模块进行深入的学习。首先mybatis内部虽然有各种配置文件解析,数据封装,sql执行等复杂的流程,但是基本上都可以通过SqlSession接口进行操作,这种设计就是运用了门面模式;另外mybatis支持通过配置文件灵活配置连接数据库的时候是
xJTechnology
·
2020-07-06 09:28
Mybatis源码解析
之Spring集成mybatis-spring分析
Mybatis源码解析
之核心类分析
Mybatis源码解析
之初始化分析
Mybatis源码解析
之执行流程解析
Mybatis源码解析
之数据库连接和连接池
Mybatis源码解析
之事务管理
Mybatis源码解析
之缓存机制
翻身已碰头
·
2020-07-05 07:14
Mybatis
Mybatis源码解析
Spring集成
Mybatis源码解析
Spring集成MybatisMybatis和Spring框架的集成,可使用MyBatis-Spring组件,该组件有Mybatis社区开发,可以将MyBatis代码无缝地整合到Spring中。它将允许MyBatis参与到Spring的事务管理之中,创建映射器mapper和SqlSession并注入到bean中,以及将Mybatis的异常转换为Spring的DataAccessException。
老周(重庆)
·
2020-07-04 16:09
MYBATIS源码解析
MyBatis源码解析
首先是mybatis简单的使用Demo(源码基于3.5.1版本):Stringresource="mybatis-config.xml";InputStreaminputStream=null;try{inputStream=Resources.getResourceAsStream(resource);}catch(IOExceptione){e.printStackTrace();}//构建S
ajhvele180232
·
2020-07-04 10:40
Mybatis源码解析
之模块解析:插件模块
介绍我之前有篇文章大概写了一下mybatis插件的实现原理Mybatis只写了接口,为什么能运行?Mybaits插件的实现主要用了责任链模式和动态代理动态代理可以对SQL语句执行过程中的某一点进行拦截,当配置多个插件时,责任链模式可以进行多次拦截,责任链模式的UML图如下可以看到在一条责任链中,每个Handler对象都包含对下一个Handler对象的引用,一个Handler对象处理完消息会把请求传
Java识堂
·
2020-07-04 04:08
MyBatis
mybatis源码解析
1>日志
今日任务1>mybatis默认使用什么来记录日志2>Mybatis的日志和Spring整合时会发生什么变化//1.>准备工作连接数据库的基本四项2pom文件也就一个mybatis的jar以及mysql的jar3.>log4j配置文件4>我这里暂且写一个查询接口吧当我们使用原生的Mybatis的时候,可以看出来我们此时是可以打印log4j的日志的呢么呢么Mybatis究竟是靠什么输出日志的呢?在My
weixin_43689953
·
2020-06-29 09:09
MyBatis源码解析
单用mybatis框架的执行sql步骤:Stringresource="mybatis-config.xml";InputStreaminputStream=Resources.getResourceAsStream(resource);SqlSessionFactorysqlSessionFactory=newSqlSessionFactoryBuilder().build(inputStrea
哇呜哦~~
·
2020-06-29 05:01
java框架
mybatis 源码解析【一】之 MapperMethod
mybatis源码解析
【一】之MapperMethod在MapperMethod类里有2个内部静态类SqlCommand和MethodSignature何谓内部静态类我的理解就是这2个类就是专门服务MapperMethod
angerYang
·
2020-06-27 09:17
源码解析
mybatis
mybatis源码解析
MyBatis源码解析
(一)——MyBatis初始化过程解析
建议移步至简书浏览,排版较为整齐:http://www.jianshu.com/p/7bc6d3b7fb451.准备工作为了看清楚MyBatis的整个初始化过程,先创建一个简单的Java项目,目录结构如下图所示:1.1Product产品实体类publicclassProduct{privatelongid;privateStringproductName;privateStringproductC
凌澜星空
·
2020-06-26 22:32
MyBatis
MyBatis源码解析
——Mapper代理对象执行增删改查
从上篇,我们知道,mybatis获取的Mapper是一个代理对象,接下来我们就看看它是如何通过这个代理对象来执行增删改查操作的。下面是我的测试代码,还是一步步debug,.我们直接从userMapper.selectUserById(1)开始讲起。userMapper执行selectUserById(1)方法,接下来便进入MapperProxy.invoke()方法里,这是因为userMapper
rz_0212
·
2020-06-26 06:09
Mybatis
Mybatis源码解析
之数据库连接和连接池
Mybatis源码解析
之核心类分析
Mybatis源码解析
之初始化分析
Mybatis源码解析
之执行流程解析一、数据库连接的获取Mybatis作为ORM框架,在上一篇博客中可以了解到在sql执行流程中会在BaseExecutor
翻身已碰头
·
2020-06-25 16:57
Mybatis
Mybatis源码解析
Mybatis源码解析
之核心类分析
以下Mybatis解析基于org.mybatis:mybatis:3.4.5一、整体设计图片来源二、核心类解读1.SqlSession和SqlSessionFactorySqlSession是Mybatis框架对外暴露的顶层API接口,通过这个接口可以实现增删改查、事务管理等数据库操作,框架中提供了DefaultSqlSession和SqlSessionManager两个实现类。在SqlSessi
翻身已碰头
·
2020-06-25 16:56
Mybatis
Mybatis源码解析
Mybatis源码解析
之数据库连接与SQL执行
关于MyBatis是如何解析mybatis-config.xml文件,获取到数据源的请看这篇文章:
Mybatis源码解析
之数据源和SQL构建1、背景
JAVAERS_Q
·
2020-06-25 11:40
MyBatis
Mybatis源码解析
之数据源和SQL构建
文章目录1、Mybatis官网简介2、Demo搭建2.1、maven依赖2.2、mybatis配置2.3、mapper文件配置2.3、测试类3、源码解析3.1、初始化阶段3.2、获取数据源3.3、构建SQL语句3.4、解析mybatis-config.xml过程总结4、常见面试题5、MyBatis数据库连接和SQL执行1、Mybatis官网简介MyBatis一款半自动的ORM持久层框架,它支持自定
JAVAERS_Q
·
2020-06-25 11:40
MyBatis
上一页
1
2
3
4
5
6
下一页
按字母分类:
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
U
V
W
X
Y
Z
其他