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源码解析
之解析器模块
主要功能1、对XPath进行封装,为MyBatis初始化时解析mybatis-config.xml配置文件以及映射配置文件提供支持2、处理动态SQL语句中的占位符提供支持目标模块源码地址https://gitee.com/bitongchong/mybatis-3/tree/feature/learningBranch/src/main/java/org/apache/ibatis/parsing
问而知
·
2020-08-19 03:48
MyBatis源码解析
mybatis(基本写成手写笔记啦.真没时间写)
09081)
Mybatis源码解析
-SqlSessionFactory在Mybatis中,对数据库的增删改查,实际上是由SqlSession来操作的,而SqlSession又是从SqlSessionFactory
万里江山_只等贤
·
2020-08-19 00:45
数据库
mybatis源码解析
- 核心基础组件之日志组件
mybatis作为当前主流的ORM框架之一,其流行程度远超过了JPA,Hibernate,Bee等其它三方ORM框架,尤其是在与Spring无缝黏合之后。最近相当一段时间,对mybatis的源码(v3.5.6)和设计进行了一些研究,接下来会分章节给大家分享。整体设计架构核心门面接口SqlSession:作为访问数据库的门面(或外观),其对外屏蔽了通过mybatis数据库访问复杂度,大大降低了外部程
wavebeed
·
2020-08-18 17:27
mybatis
源码
日志
mybatis源码解析
mybatis源码解析
(五)-mybatis如何实现的事务控制
mybatis源码解析
(一)-开篇
mybatis源码解析
(二)-加载过程
mybatis源码解析
(三)-SqlSession.selectOne类似方法调用过程
mybatis源码解析
(四)-Mapper方法调用过程
马彬彬
·
2020-08-16 21:57
♚java♚
mybatis源码解析
myBatis源码解析
-类型转换篇(5)
前言开始分析Type包前,说明下使用场景。数据构建语句使用PreparedStatement,需要输入的是jdbc类型,但我们一般写的是java类型。同理,数据库结果集返回的是jdbc类型,而我们需要java类型。这就涉及到一个类型转换问题,Type包就是解决这个问题。下面是Type包类图所在结构:源码解析1.BaseTypeHandle-类型处理器实现的基类mybatis中的默认类型处理器,自定
超人小冰
·
2020-08-14 16:00
MyBatis源码解析
文章目录
MyBatis源码解析
一、mybatis怎么处理参数以及执行方法?
GatesMa
·
2020-08-14 05:21
学习
JAVA
Mybatis源码解析
之分页插件pagehelper分析
Mybatis源码解析
之核心类分析
Mybatis源码解析
之初始化分析
Mybatis源码解析
之执行流程解析
Mybatis源码解析
之数据库连接和连接池
Mybatis源码解析
之事务管理
Mybatis源码解析
之缓存机制
翻身已碰头
·
2020-08-11 22:12
Mybatis
Mybatis源码解析
PageHelper
PageInterceptor
Mybatis源码解析
之mapper接口的代理模式
Mybatis源码解析
之核心类分析
Mybatis源码解析
之初始化分析
Mybatis源码解析
之执行流程解析
Mybatis源码解析
之数据库连接和连接池
Mybatis源码解析
之事务管理
Mybatis源码解析
之缓存机制
翻身已碰头
·
2020-08-11 22:11
Mybatis
Mybatis源码解析
myBatis源码解析
-反射篇(4)
前沿前文分析了mybatis的日志包,缓存包,数据源包。源码实在有点难顶,在分析反射包时,花费了较多时间。废话不多说,开始源码之路。反射包feflection在mybatis路径如下:源码解析1property包-主要对类的属性进行操作的工具包1.1PropertyCopier包利用反射类Filed进行属性复制//该类作用将sourceBean与destinationBean相同属性名的属性进行值
超人小冰
·
2020-08-11 20:00
Mybatis源码解析
之Mybatis初始化过程
一、搭建一个简单的Mybatis工程为了了解Mybatis的初始化过程,这里需要搭建一个简单的Mybatis工程操作数据库,工程结构如下:一个UserBean.javaprivateintid;privateStringusername;privateStringpassword;privateintage;publicUserBean(Stringusername,Stringpassword,
月月鸟要好好学习安卓
·
2020-08-09 20:48
mybatis源码
Mybatis源码解析
-sql执行
一、传统的jdbc操作步骤获取驱动获取jdbc连接创建参数化预编译的sql绑定参数发送sql到数据库执行将将获取到的结果集返回应用关闭连接传统的jdbc代码:packagecom.zjp;importjava.sql.Connection;importjava.sql.DriverManager;importjava.sql.PreparedStatement;importjava.sql.Res
月月鸟要好好学习安卓
·
2020-08-09 20:48
mybatis源码
myBatis源码解析
-数据源篇(3)
前言:我们使用mybatis时,关于数据源的配置多使用如c3p0,druid等第三方的数据源。其实mybatis内置了数据源的实现,提供了连接数据库,池的功能。在分析了缓存和日志包的源码后,接下来分析mybatis中的数据源实现。类图:mybatis中关于数据源的源码包路径如下:mybatis中提供了一个DataSourceFactory接口,提供了设置数据源配置信息,获取数据源方法。查看类图可知
超人小冰
·
2020-08-05 20:00
mybatis源码解析
(四)--- MapperStatement的注册
上图是DefaultSqlsessio中的类中,可以看到执行查询结果的是否,是Configuration中获取的MapperStatement对象,那么什么时候向Configuration中注册这个的呢?答案是扫描Mapper接口时候,这其实是第二篇中没有分析的,现在单独拿出来分析一下,上面这段代码是MapperRegistry这个类中注册的Mapper的代理工厂,如果对于Mapper的加载过程不
weixin_33953384
·
2020-08-04 05:34
mybatis源码解析
--mapper代理对象的生成过程
我们平常在使用mybatis的时候只需要生成mapper接口和与其对应的xml文件就行了,我们就可以把这个接口当作一个bean,可以往其他的bean中注入了。我们没有实现mapper接口,为什么可以使用接口中的方法呢?原因是虽然我们没有实现接口,但是通过配置文件,spring为我们生成了接口的代理类。让我们从配置文件入手,从源码中一探究竟。MapperScannerConfigurer这个类是负责
笨笨小孩945
·
2020-08-03 21:20
源码解读
MyBatis源码解析
--加载流程(10)
//继续DefaultResultSetHandler//创建数据库映射的结果对象privateObjectcreateResultObject(ResultSetWrapperrsw,ResultMapresultMap,ResultLoaderMaplazyLoader,StringcolumnPrefix)throwsSQLException{//标识是否使用构造函数创建该结果对象this.
jacobbbbbbbb
·
2020-08-03 18:39
jdbc与mybatis
MyBatis源码解析
--加载流程(9)
ResultSetHandler会将查询结果的ResultSet转换成映射的对应结果ResultSetWrapperpublicclassResultSetWrapper{//ResultSet对象privatefinalResultSetresultSet;privatefinalTypeHandlerRegistrytypeHandlerRegistry;//字段名称的数组privatefin
jacobbbbbbbb
·
2020-08-03 18:39
jdbc与mybatis
MyBatis源码解析
--加载流程(4)
接下来是注解配置的解析,入口是MapperRegistry.addMapperpublicvoidaddMapper(Classtype){//首先判断必须是接口if(type.isInterface()){if(hasMapper(type)){thrownewBindingException("Type"+type+"isalreadyknowntotheMapperRegistry.");}
jacobbbbbbbb
·
2020-08-03 18:38
jdbc与mybatis
MyBatis源码解析
--基础支持层(8)
10.注解模块对应的annotation包,使得我们可以再Mapper接口上编写简单的数据库SQL。CRUD相关的注解:@Insert、@Update、@Delete、@Select四个最主要的,其次还有@UpdateProvider、@DeleteProvider、@SelectProvider、@InsertProvider、@MapKey、@Options、@SelelctKey、@Para
jacobbbbbbbb
·
2020-08-03 18:38
jdbc与mybatis
MyBatis源码解析
- MyBatis初始化
我们主要从下面两个方面来分析MyBatis的初始化过程:初始化做什么?怎么初始化?初始化做什么?任何框架的初始化,无非是加载自己运行时所需要的配置信息,org.apache.ibatis.session下的Configuration类,即为Mybatis所有配置信息的容器类。包括的配置信息有:publicclassConfiguration{protectedEnvironmentenvironm
SMonkeyKing
·
2020-08-03 13:22
MyBatis
mybatis源码解析
11---ParameterHandler解析
ParameterHandler接口是参数处理器,位于mybatis包的org.apache.ibatis.executor.parameter下,源码如下:1publicinterfaceParameterHandler{23ObjectgetParameterObject();//获取参数45voidsetParameters(PreparedStatementps)//设置参数6throws
Lee_0202
·
2020-08-03 13:35
mybatis源码解析
10---StatementHandler解析
StatementHandler解析接口的作用是statement处理器,位于mybatis包的org.apache.ibatis.executor.statement目录下,源码如下:1packageorg.apache.ibatis.executor.statement;23importjava.sql.Connection;4importjava.sql.SQLException;5impo
Lee_0202
·
2020-08-03 13:35
mybatis源码解析
12---ResultSetHandler解析
说完了StatementHandler和ParameterHandler,接下来就需要对查询的结果进行处理了,而对于sql结果的处理是由ResultSetHandler处理的,ResultHandler位于mybatis包的org.apache.ibatis.executor.resultset下,源码如下:1publicinterfaceResultSetHandler{23Listhandle
Lee_0202
·
2020-08-03 13:35
java
mybatis源码解析
6---MappedStatement解析
MappedStatement类位于mybatis包的org.apache.ibatis.mapping目录下,是一个final类型也就是说实例化之后就不允许改变MappedStatement对象对应Mapper.xml配置文件中的一个select/update/insert/delete节点,描述的就是一条SQL语句,属性如下:1privateStringresource;//mapper配置文
Lee_0202
·
2020-08-03 13:04
mybatis源码解析
7---MappedStatement初始化过程
上一篇我们了解到了MappedStatement类就是mapper.xml中的一个sql语句,而Configuration初始化的时候会加载所有的mapper接口类,而本篇再分析下是如何将mapper接口和xml进行绑定的。先从上一篇的源码开始分析:1publicvoidaddMapper(Classtype){2if(type.isInterface()){3if(hasMapper(type)
Lee_0202
·
2020-08-03 10:05
MyBatis源码解析
(六)——DataSource数据源模块之池型数据源
原创作品,可以转载,但是请标注出处地址:http://www.cnblogs.com/V1haoge/p/6675674.html1回顾上一文中解读了MyBatis中非池型数据源的源码,非池型也就是只拥有单一数据连接的数据源,他只管理着一个数据连接,这种数据源现在很少使用,一般都是用池型数据源,因为单个连接的情况下,为了保证操作的正确性,针对这个连接的使用要进行同步,这样无疑会拖慢系统运行速度。而
weixin_30426879
·
2020-07-30 02:20
Mybatis源码解析
之DataSource
前言:我们知道,Mybatis在配置xml文件的时候,需要选择dataSource的类型,而我们操作JDBC正是通过使用DataSource中的Connection来完成的。本文主要分析,Mybatis中有哪些DataSource类型可选,从源码级别解析其又是如何产生Connection的本文不再介绍如何使用mybatis,读者可参考易佰教程易佰教程mybatis1.常规配置文件配置如下所示(命名
恐龙弟旺仔
·
2020-07-29 22:45
Mybatis
Mybatis源码解析
Mybatis源码解析
《一》
导语在当前的日常开发中,mybatis这样的一个框架的使用,是很多程序员都无法避开的。大多数人都知道mybatis的作用是为了避免了几乎所有的JDBC代码和手动设置参数以及获取结果集。因为在开始接触使用Java操作数据库的时候,我们都是使用JDBC的。自从有了持久化框架之后,使用持久化框架已经是“理所当然”的了,虽然我们已经脱离了使用JDBC是阶段了,但是这毕竟是基础的知识,所以本篇文章将会从JD
不才人pat
·
2020-07-29 02:43
Mybatis
Mybatis源码解析
源码解析
Mybatis源码解析
《二》
导语在前一篇文章
Mybatis源码解析
《一》中,已经简单了捋了一下mybatis核心文件和mapper配置文件的一个基本的解析流程,这是理解mybatis的基本,和spring中的配置文件的加载解析是一样的道理
不才人pat
·
2020-07-29 02:43
Mybatis
Mybatis源码解析
深入浅出
Mybatis源码解析
——SqlSource的创建流程
前言在前一篇文章深入浅出
Mybatis源码解析
——映射文件加载流程中,最后说到了创建SqlSource和创建MappedStatement对象,由于篇幅原因最后只好终止了,所以便只好在写一篇文章来说说SqlSource
不才人pat
·
2020-07-29 02:38
Mybatis源码解析
myBatis源码解析
-缓存篇(2)
上一章分析了mybatis的源码的日志模块,像我们经常说的mybatis一级缓存,二级缓存,缓存究竟在底层是怎样实现的。此次开始分析缓存模块1.源码位置,mybatis源码包位于org.apache.ibatis.cache下,如图2.先从org.apache.ibatis.cache下的cache接口开始//缓存接口publicinterfaceCache{//获取缓存IDStringgetId
超人小冰
·
2020-07-28 20:00
第五章 MyBatis源码阅读
MyBatis源码解析
mybatis.xml文件解析#####SqlSessionFactoryBuilder分析①SqlSessionFactoryBuilder分析importjava.io.IOException
Pj-东东
·
2020-07-28 19:31
MyBatis
源码分析
MyBatis源码解析
(十二)——binding绑定模块之MapperRegisty
原创作品,可以转载,但是请标注出处地址:http://www.cnblogs.com/V1haoge/p/6758456.html1、回顾之前解析了解析模块parsing,其实所谓的解析模块就是为了解析SQL脚本中的参数,根据给定的开始标记与结束标记来进行参数的定位获取,然后右标记处理器进行参数处理,再然后将处理过后的参数再组装回SQL脚本中。如此一来,解析的目的就是为了处理参数。这一篇看看bin
weixin_30663391
·
2020-07-28 16:06
mybatis源码解析
(二)-加载过程
mybatis源码解析
(一)-开篇
mybatis源码解析
(二)-加载过程
mybatis源码解析
(三)-SqlSession.selectOne类似方法调用过程
mybatis源码解析
(四)-Mapper方法调用过程
马彬彬
·
2020-07-28 13:53
♚java♚
mybatis源码解析
(一)
MyBatis源码解析
之配置文件
使用mybatis进行数据库查询的代码如下:publicclassMessageDaoDemo{@TestpublicvoidqueryMessageList()throwsIOException{SqlSessionsqlSession=getSessionFactory().openSession();MessageMapperDaomessageMapper=sqlSession.getMa
Mr孔先森
·
2020-07-28 13:54
mybatis
MyBatis源码解析
——获取Mapper对象
之前两篇文章,已经讲述了SqlSessionFactory和SqlSession的获取过程,那么今天就一起来看一下SqlSession是如何得到Mapper的,从而执行相应的增删改查方法。这里还是以之前的代码为例,一步步debug的方式,去探究其中的过程。首先,sqlSession调用getMapper(Classtype)方法,参数里传入指定的Class类型,返回给我们的就是一个传入该类型的对象
rz_0212
·
2020-07-28 10:42
Mybatis
深入
MyBatis源码解析
执行过程
MyBatis深入分析1、分析JDBC执行过程2、分析MyBatis执行过程2.1、SqlSession会话层分析2.1.1、创建会话2.1.2、获取映射2.1.3、执行SQL2.2、Executor执行器层分析2.2.1、执行流程2.2.2、一级缓存2.2.3、二级缓存2.3、StatementHandler层分析1、分析JDBC执行过程publicclassJdbcTest{publicsta
不乏希望
·
2020-07-28 09:34
笔记
【
MyBatis源码解析
】spring-mybatis 源码解析
一。前言人们总是一边追逐一边回味。既要研究大型分布式框架,单机的优秀框架也不能错过。一个框架的概览,在于入口,即配置项的解析;在于描述性配置,即如何识别和管理bean;在于代理,即被管理的bean被代理成有什么样行为的类。二。重要设计每次使用mybatis,都会引入mybatis-spring包,并且设置两个bean‘,SqlSessionFactoryBean和MapperScanConfigu
赵润泽同学
·
2020-07-28 07:41
mybatis
mybatis源码解析
之简单案例(一)
mybatis简单案例完整的目录mybatis.xml的内容-->-->-->-->-->-->-->-->supplier-label-mapper.xml文件SELECTlabel.id,label.supplier_type,label.supplier_id,label.label_type,label.label_id,label.label_name,label.gmt_created
ACMer_xbb
·
2020-07-28 02:36
mybatis
MyBatis源码解析
(一) --- 配置文件解析
MyBatis给我们提供丰富的配置来满足我们的需求,本文会对MyBatis的配置文件解析过程进行分析,其中包含但不限于properties、settings、typeAliase、typeHandlers等。1、配置文件解析入口在单独使用MyBatis时,第一步要做的事情就是根据配置文件构建SqlSessionFactory对象。相关代码如下:Stringresource="mybatis-con
在云端123
·
2020-07-28 01:20
MyBatis
MyBatis源码解析
mybatis源码解析
第三课-mybatis源码调试入门
在网上找了很多mybatis源码调试的博客,感觉写的都不是很完善,后面决定还是静下心来仔细阅读mybatis的API,看完了入门那一个章节之后,基本上就对mybatis的源码调试有了清楚的了解,下面做详细的说明;第一步:创建mybatis相关的配置文件。第二步:创建实体类和接口;第三步:编写测试demo;工程的总体结构图如下:第一步:创建mybatis相关的配置文件包括核心配置文件mybatis-
hnlcwx2917
·
2020-07-27 20:15
mybatis
myBatis源码解析
-日志篇(1)
上半年在进行知识储备,下半年争取写一点好的博客来记录自己源码之路。在学习源码的路上也掌握了一些设计模式,可所谓一举两得。本次打算写Mybatis的源码解读。准备工作1.下载mybatis源码下载地址:https://github.com/mybatis/mybatis-32.下载mybatis-parent源码下载地址:https://github.com/mybatis/parent3.编译进入
超人小冰
·
2020-07-27 20:00
mybatis源码解析
1——SqlSession
先从日常工作流程下手吧,在看其他项目的源码前,最好对项目有一个充分的了解,如具体的实现步骤、配置、应用等,另外看源码是对所使用工具的一种深究,只有对自身掌握的工具知根知底,在进行架构设计、选型的时候才能够做出合理的判断,并且一旦你对源码有一定的熟悉程度,还可以在必要的时候进行改造或者扩展,已满足自身的需要,这是非常重要的。某些项目的设计模式非常优秀,借鉴这些设计有助于自身的成长。操作流程我们通常按
Imadone
·
2020-07-27 17:33
源码解析
mybatis源码解析
四之各大组件
文章目录xpath解析xml解析DTD构造Xpath和document解析String解析XNode对反射支持ReflectorFactoryObjectFactoryPropertyMetaClassObjectWrapperMetaObject类型转换TypeHandlerTypeHandlerRegistryTypeAliasRegistry日志模块JDBC日志类加载器ClassLoader
Nuan_Feng
·
2020-07-27 16:49
mybatis源码
mybatis源码解析
(一) 项目结构概览
mybatis源码解析
(一)项目结构概览
mybatis源码解析
系列源码基于3.5.2-SNAPSHOT版本,截至笔者开始写第一篇源码解析时这是官方的最新master分支。
Let_me_tell_you
·
2020-07-27 16:22
Mybatis
源码解析
mybatis源码解析
(零) MyBatis简单介绍
mybatis源码解析
(零)项目结构概览
mybatis源码解析
系列源码基于3.5.2-SNAPSHOT版本,截至笔者开始写第一篇源码解析时这是官方的最新master分支。
Let_me_tell_you
·
2020-07-27 16:22
Mybatis
源码解析
mybatis源码解析
之SqlSession接口。
*SqlSessions由SqlSessionFactory实例创建的。SqlSessionFactory对象包含创建SqlSession实例的所有方法。而SqlSessionFactory本身是由SqlSessionFactoryBuilder创建。*那么我们先从SqlSessionFactoryBuilder开始SqlSessionFactoryBuilder:SqlSessionFactor
Linn01
·
2020-07-27 15:04
mybatis
MyBatis 源码解析:通过源码深入理解 SQL 的执行过程
本文来自作者来在GitChat上分享「
MyBatis源码解析
:通过源码深入理解SQL的执行过程」,「阅读原文」查看交流实录。「文末高能」编辑|哈比本文篇幅有点长,希望你能耐心读下去,相信不会让你失望。
技术杂谈哈哈哈
·
2020-07-27 15:04
深入浅出
Mybatis源码解析
——全局配置文件解析(全局配置文件解析加载流程附篇)
前言首先要说下停更这么久的原因,因为工作上最近有点忙,加上学习债的繁重以至于没有继续更新
Mybatis源码解析
的文章,所以趁着忙里偷闲,来简单的更新一篇。
不才人pat
·
2020-07-27 14:46
Mybatis源码解析
深入浅出
Mybatis源码解析
——全局配置文件解析加载流程
前言前面笔者其实已经写了两篇关于
Mybatis源码解析
的文章,可后面自觉其解析的不够全面,但是那两篇文章完全是按照debug模式,简单的走了一遍流程去解析的,对于Mybatis内部的很多类的属性以及类的作用都没有做相关介绍
不才人pat
·
2020-07-27 14:46
Mybatis源码解析
MyBatis源码解析
——获取SqlSession
上一篇讲解了SqlSessionFactory的获取过程,那接下来我们就来说一说如何从SqlSessionFactory中拿到SqlSession。还是写一个测试方法,一步步debug,跟踪源码,看看SqlSessionFactory到底做了什么。首先进入DefaultSqlSessionFactory中,调用它的openSession()方法,openSession()方法有很多重载,我们这里什
rz_0212
·
2020-07-27 12:51
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
其他