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源码解析
】MyBatis一二级缓存
MyBatis缓存我们知道,频繁的数据库操作是非常耗费性能的(主要是因为对于DB而言,数据是持久化在磁盘中的,因此查询操作需要通过IO,IO操作速度相比内存操作速度慢了好几个量级),尤其是对于一些相同的查询语句,完全可以把查询结果存储起来,下次查询同样的内容的时候直接从内存中获取数据即可,这样在某些场景下可以大大提升查询效率。MyBatis的缓存分为两种:一级缓存,一级缓存是SqlSession级
weixin_34307464
·
2022-09-24 19:55
java
数据库
数据结构与算法
MyBatis 源码解析——SQL解析
MyBatis源码解析
——SQL解析之前就看过MyBatis源码,理解了,但没完全理解。
k7c9
·
2022-09-08 12:07
MyBatis
sql
java
mybatis
终于有人把
MyBatis源码解析
总结得如此系统,堪称傻瓜式笔记总结
Mybatis应该是国内用得最多的「数据访问层」框架了,我看了我司的好几个系统,基本都是用Mybatis的。然而大厂都在用MyBatis,跳槽的时候MyBatis更是面试必问的内容,那你对于MyBatis又掌握了多少呢?下面这5道阿里关于MyBatis的面试题,你能答上来几道?然而在很多博客或者百度上都没有系统详细的笔记总结,零零散散,直到今天终于看到有人把MyBatis从入门到源码解析总结的如此
肥肥技术宅
·
2022-08-21 10:10
java
mybatis
java
面试
「
Mybatis源码解析
」- 整体架构及原理
version-3.5.5在深入了解Mybatis的源码之前,我们先了解一下Mybatis的整体架构和工作原理,这样有助于我们在阅读源码过程中了解思路和流程。核心流程在上一遍的入门程序中,我们通过示例代码简单的介绍了如何通过Myabtis进行一个简单的增删改查,并用简单的步骤描述了示例程序的运行过程。为了更直观,其工作原理可理解成如下步骤:初始化阶段:读取XML配置文件和注解中的配置信息,创建配置
Java爱好狂.
·
2022-08-14 07:22
java
Mybatis
数据库
分布式
程序员
MyBatis源码解析
——缓存
这一节我将讲解有关MyBatis缓存的相关源码,也不会太难。众所周知,MyBatis有一级缓存和二级缓存。缓存这个东西是有利有弊,利的话,很明显在于速度更快了,弊一般是数据不一致的问题,这个不仅仅是在MyBatis里会出现了,任何使用缓存的地方都有可能会这样。因此了解MyBatis的缓存是很有必要的,下面我们一起来看下它相关的源码吧。一级缓存先来简单介绍一下一级缓存。在一次数据库连接session
k7c9
·
2022-07-04 11:09
MyBatis
Java
java
mybatis
缓存
Java 后端工程师的书单推荐,周立功linux开发教程
后台发送【知识星球】《精尽Dubbo源码解析》已完成69篇《精尽Netty源码解析》已完成61篇《精尽
MyBatis源码解析
》已完成20篇《数据库实体设计》已完成17篇《Spring源码解析》已更新35
普通网友
·
2022-06-27 20:49
程序员
面试
java
后端
MyBatis框架底层的执行原理源码解析
目录1.前言2.案例项目源码3.
MyBatis源码解析
底层执行原理3.1读取mybatis配置文件创建出SqlSeesionFactory对象3.2通过SqlSeesionFactory对象进而创建出SqlSession
·
2022-06-22 16:18
MyBatis——源码解析MyBatis框架底层的执行原理
文章目录:1.前言2.案例项目源码3.
MyBatis源码解析
底层执行原理3.1读取mybatis配置文件创建出SqlSeesionFactory对象3.2通过SqlSeesionFactory对象进而创建出
张起灵-小哥
·
2022-06-18 19:26
#
【MyBatis】
#
【Java面试】
java
mybatis
源码解析
Mybatis执行流程,源码解析
文章目录简单使用
Mybatis源码解析
获取配置文件的输入流获取SqlSessionFactory对象创建SqlSession获取Mapper接口对象接口方法的调用简单使用Mybatis在看Mybatis
Jayicee
·
2022-04-18 13:24
Web框架
数据库
mybatis
java
Mybatis源码解析
目录传统JDBC的问题如下mybatis对传统的JDBC的解决方案Mybaits整体体系图MyBatis源码编译启动流程分析1、解析全局配置文件简单总结2、Mapper.xml文件解析3、二级缓存的解析(二级缓存一直是开启的,只是我们调用二级缓存需要条件)4、sql语句的解析MyBatis执行Sql的流程分析1.创建SqlSessionExecutor2.用SqlSession操作数据库通过get
WinnerBear
·
2022-03-31 12:57
Mybatis
java
MyBatis源码解析
(四) Cache模块
MyBatis的二级缓存MyBatis的缓存分为一级缓存和二级缓存,一级缓存是SqlSession级别的缓存,二级缓存是mapper级别的缓存。但是这篇博客主要是介绍mybaits中缓存接口和缓存键接口,以及一些缓存实现。之前写过一篇博客简单介绍了一下Hibernate的两级缓存。链接:https://blog.csdn.net/Let_me_tell_you/article/details/80
谈谈理想_ttlx
·
2022-02-13 05:20
MyBatis 源码解析(二):SqlSession 执行流程
简介上一篇文章(
MyBatis源码解析
(一):初始化和动态代理)分析了MyBatis解析配置文件以及Mapper动态代理相关的源码,这一篇接着上一篇探究SqlSession的执行流程,另外了解一下MyBatis
然则
·
2022-02-10 19:08
MyBatis源码解析
——获取SqlSessionFactory方式
目录
MyBatis源码解析
_获取SqlSessionFactory首先从Resources.getResourceAsReader(path)进入到SqlSessionFactoryBuilder.build
·
2022-02-09 11:16
MyBatis源码系列--4.
mybatis源码解析
(下)
接着上一篇分析源码,从编程式的demo入手InputStreaminputStream=Resources.getResourceAsStream("mybatis-config.xml");SqlSessionFactorysqlSessionFactory=newSqlSessionFactoryBuilder().build(inputStream);SqlSessionsession=sq
威少JAVA
·
2022-02-07 08:12
MyBatis源码系列--3.
mybatis源码解析
(上)
分析源码,从编程式的demo入手InputStreaminputStream=Resources.getResourceAsStream("mybatis-config.xml");SqlSessionFactorysqlSessionFactory=newSqlSessionFactoryBuilder().build(inputStream);SqlSessionsession=sqlSess
威少JAVA
·
2022-02-06 11:29
Mybatis源码解析
之事务管理
目录Mybatis事务管理和Spring整合后的事务管理Mybatis事务管理我们可以在mybatis-config.xml中配置事务管理器的实现当值为JDBC时,事务管理实现类为JdbcTransaction,底层利用数据库的Connection来管理事务当值为MANAGED时,事务管理实现类为ManagedTransactionFactory,但它对事务的管理是一个空实现,将事务管理交给外部容
·
2021-12-19 17:59
MyBatis源码解析
之Transaction事务模块
目录1、回顾2、事务模块2.1事务接口2.2MyBatis事务类型2.3JDBC事务模型2.4关于自动提交2.5问题1、回顾之前介绍了Environment环境类,这其实是一个单例类,在MyBatis运行开启后只会存在一个唯一的环境实例,虽然我们可以在Configuration配置文件中配置多个环境,但是项目运行中只会存在其中的一个,一般项目会存在开发环境和测试环境、生产环境三大环境,其是否可以设
·
2021-10-08 16:24
MyBatis源码解析
(二)—执行篇
前言上一篇文章《
MyBatis源码解析
(一)—构造篇》提到了MyBatis是如何构建配置类的,也说了MyBatis在运行过程中主要分为两个阶段,第一是构建,第二就是执行,所以这篇文章会带大家来了解一下MyBatis
ObjectSpace
·
2021-06-12 04:50
MyBatis源码解析
(三)—缓存篇
前言大家好,这一篇文章是MyBatis系列的最后一篇文章,前面两篇文章《
MyBatis源码解析
(一)—构建篇》和《
MyBatis源码解析
(二)—执行篇》,主要说明了MyBatis是如何将我们的xml配置文件构建为其内部的
ObjectSpace
·
2021-06-09 11:30
MyBatis源码解析
(一)——构造篇
前言好久不见,从上一篇文章过后,休整了两个月,又逢疫情特殊时期,天天宅在家里挺尸,真是见证了一个人可以懒惰到什么境界。好吧废话不多说了,今天会给大家分享我们常用的持久层框架——MyBatis的工作原理和源码解析。说实话MyBatis是我第一个接触的持久层框架,在这之前我也没有用过Hibernate,从Java原生的Jdbc操作数据库之后就直接过渡到了这个框架上,当时给我的第一感觉是,有一个框架太方
ObjectSpace
·
2021-06-08 19:24
Mybatis源码解析
(二) Executor
Executor是mybaits的核心接口之一,他用于执行数据库具体操作,包括但不限于CRUD,commit,rollback等。image.pngExector有2个子类BaseExecutor和CachingExecutor。CachingExecutor只是一个包装(wrapper)类,再原Exector入参的基础上增加了缓存功能。BaseExecutor抽象类,它实现了所有公共部分,将核心
三斤牛肉
·
2021-05-08 14:39
mybatis源码解析
六(代理模式再分析)
mybatis源码解析
六(代理模式再分析)前面几期大概一起看了下maybatis的源码,这一期,我们通过设计模式来分析下mybatis的,但是在分析之前,我们再来屡一下mybatis的执行流程,做一个整体的讲解
为梦想前进
·
2021-04-18 22:12
Mybatis(四)
Mybatis源码解析
(下)
文章目录一、缓存机制1.1缓存类1.1.1PerpetualCache1.1.2LruCache1.1.3BlockingCache1.2CacheKey1.3一级缓存1.4二级缓存二、插件机制2.1插件机制原理2.1.1植入插件逻辑2.1.2执行插件逻辑2.2实现一个分页插件一、缓存机制 通常我们都会用Redis或memcached等缓存中间件,拦截大量奔向数据库的请求,以减轻数据库压力。My
解梦者
·
2021-04-14 10:36
ORM框架
java
mybatis
Mybatis(三)
Mybatis源码解析
(中)
文章目录一、SQL执行流程1.1SQL执行入口1.1.1为Mapper接口创建代理对象1.1.2执行代理逻辑1.2查询语句的执行过程1.2.1selectOne方法1.2.2获取BoundSql1.2.3创建StatementHandler1.2.4设置运行时参数到SQL中1.2.5#{}占位符的解析与参数的设置过程梳理1.2.6处理查询结果1.3更新语句的执行过程1.3.1更新语句执行过程全貌1
解梦者
·
2021-04-13 09:34
ORM框架
java
myba
sql
Mybatis(二)
Mybatis源码解析
(上)
文章目录一、配置文件解析过程1.1解析节点1.2解析节点1.2.1元信息对象创建过程1.2.2DefaultReflectorFactory1.2.3Reflector1.2.4PropertyTokenizer1.3设置内容到Configuration中1.4解析节点1.5解析节点1.6解析节点1.7解析节点二、映射文件解析过程2.1映射文件解析解析入口2.2解析映射文件2.2.1解析节点2.2
解梦者
·
2021-04-07 16:44
ORM框架
java
mybatis
源码
mybatis源码解析
写在前面mybatis是一个javaorm框架,能够屏蔽java访问数据库细节,将数据库表的数据与sql执行映射成具体的对象与方法。首先看一下一个mybatis的配置与代码初始化demo。DataSourcedataSource=BlogDataSourceFactory.getBlogDataSource();TransactionFactorytransactionFactory=newJdb
pursuing_tech
·
2021-01-17 21:07
阿里P7大佬的《
MyBatis源码解析
文档》太清晰了,面试不再慌
不多讲,先看目录图为什么阿里巴巴的持久层抛弃hibernate,采用MyBatis框架?原因大概有以下4点:尤其是需要处理大量数据或者大并发情况的网站服务,这也阿里选择MyBatis的原因。MyBatis整体架构大厂都在用MyBatis,跳槽的时候MyBatis更是面试必问的内容,那你对于MyBatis源码又掌握了多少呢?下面这份PDF可以说胜过你看很多博客。从MyBatis源码的角度分析Mapp
马士兵老师
·
2020-12-29 14:45
数据库
java
mybatis
spring
编程语言
Mybatis如何执行Select语句,你真的知道吗?
前两篇分别介绍了Mybatis的重要组件和围绕着Mybatis中的重要组件教大家如何阅读源码的一些方法,有了前面两篇文章的基础,来看这篇文章的才不会觉得吃力,如果没有看过的朋友,陈某建议去看看,两篇文章分别是
Mybatis
爱撒谎的男孩
·
2020-12-04 18:49
java
mybatis
Mybatis源码解析
,撸起袖子就是学
Mybatis是一个很容易上手的持久层框架,相信大家在项目中或许经常用到它,最最近读了一本⽥忠波的小小的mybatis源码分析书之后对mybatis具有了更加深入的了解,接下来我来和大家一起解剖一下mybatis。Mybatis是什么呢?MyBatis的前身是iBatis,iBatis是Apache软件基金会下的一个开源项目。在2020年的时候改名为Mybatis。MyBatis是一种半自动化的J
Youcan_〇
·
2020-09-27 10:44
MyBatis源码解析
(一)——MyBatis初始化过程解析
转载于https://www.jianshu.com/p/7bc6d3b7fb451.准备工作为了看清楚MyBatis的整个初始化过程,先创建一个简单的Java项目,目录结构如下图所示:1.1Product产品实体类publicclassProduct{privatelongid;privateStringproductName;privateStringproductContent;privat
枫清
·
2020-09-17 03:46
Mybatis源码分析
Mybatis源码分析
Mybatis源码解析
四、SqlSession运行过程
一、SqlSession的创建过程SqlSessionFactory调用openSession()方法,该方法有很多重载形式,我们以无参方法为例。publicSqlSessionopenSession(){returnopenSessionFromDataSource(configuration.getDefaultExecutorType(),null,false);}其中ExecutorTyp
无德皇叔
·
2020-09-17 01:30
myBatis源码解析
-二级缓存的实现方式
1.前言前面近一个月去写自己的mybatis框架了,对mybatis源码分析止步不前,此文继续前面的文章。开始分析mybatis一,二级缓存的实现。附上自己的项目github地址:https://github.com/xbcrh/simple-ibatis对mybatis感兴趣的同学可关注下,全手写的一个orm框架,实现了sql的基本功能和对象关系映射。废话不说,开始解析mybatis缓存源码实现
超人小冰
·
2020-09-16 18:00
Mybatis源码解析
——缓存
缓存装饰器Mybatis的缓存使用了装饰器模式,装饰器类与被装饰类实现相同接口且持有被装饰类的实例。如具体装饰器2—持有—>具体装饰器1—持有—>基本实现类实现一步步的增强Jdk中的IO包里使用了很多的装饰器模式,如BufferedInputstream等cache核心实现类PerpetualCache为基本实现类,底层使用HashMap进行缓存;其余实现均为装饰器类BlockingCacheFi
Mutou_ren
·
2020-09-15 22:11
mybatis
《
Mybatis源码解析
》一篇懂
1、MyBatis的架构设计以及实例分析2、Mybatis初始化机制详解3、Mybatis数据源与连接池4、MyBatis事务管理机制5、MyBatis缓存机制的设计与实现6、MyBatis的一级缓存实现详解及使用注意事项7、MyBatis的二级缓存的设计原理8、如何细粒度地控制你的MyBatis二级缓存(mybatis-enhanced-cache插件实现)9、mybatis关联查询问题(一对多
萌之兰
·
2020-09-15 20:09
mybatis
mybatis
源码解析-
mybatis源码解析
-xml解析
为什么80%的码农都做不了架构师?>>>准备工作:mybatis-3.4.5,mysql-connector-java-5.1.24(这里附上个人的源码https://github.com/jclyzx/mybatissourse.git)pom中添加以下依赖junitjunit4.12org.mybatismybatis3.4.5mysqlmysql-connector-java5.1.24创建
weixin_34364071
·
2020-09-15 06:40
mybatis源码解析
(四)-Mapper方法调用过程
mybatis源码解析
(一)-开篇
mybatis源码解析
(二)-加载过程
mybatis源码解析
(三)-SqlSession.selectOne类似方法调用过程
mybatis源码解析
(四)-Mapper方法调用过程
马彬彬
·
2020-09-15 05:01
♚java♚
mybatis源码解析
Mybatis如何执行Select语句,你真的知道吗?
前两篇分别介绍了Mybatis的重要组件和围绕着Mybatis中的重要组件教大家如何阅读源码的一些方法,有了前面两篇文章的基础,来看这篇文章的才不会觉得吃力,如果没有看过的朋友,陈某建议去看看,两篇文章分别是
Mybatis
爱撒谎的男孩
·
2020-09-14 13:00
Mybatis源码如何阅读,教你一招!!!
对六剑客感兴趣的朋友,可以看看这篇文章:
Mybatis源码解析
篇之六剑客有些初入门的朋友可能很害怕阅读源码,不知道如何阅读源码,与其我一篇文章按照自己的思路写完Mybatis的源码,但是你们又能理解多少呢
爱撒谎的男孩
·
2020-09-11 14:00
Mybatis源码解析
KeyGenerator
KeyGenerator用于生成数据库主键或将主键重置到pojo中KeyGenerator接口定义了2个函数://执行insert之前voidprocessBefore(Executorexecutor,MappedStatementms,Statementstmt,Objectparameter);//执行insert之后voidprocessAfter(Executorexecutor,Map
三斤牛肉
·
2020-08-23 03:50
mybatis源码解析
- 核心流程之ResultSet解析
接上篇mybatis核心运行流程之第三阶段--mybatis数据库数据读写设计,上次还留有一个重要的模块,也就是sqlSession进行数据库操作后,对结果集进行解析、映射和转换成POJO的过程代码解析。今天我们就来为此做个圆满收尾,同时也是完成前几篇文章提出那个问题的最后环节解答。核心运行流程对数据库读写阶段的设计还有这最后一个模块了,凤凰涅槃就在此举~~最后阶段没有太多的弯弯绕绕、设计套路、目
wavebeed
·
2020-08-23 00:41
mybatis
源码分析
Executor
mybatis源码解析
mybatis源码解析
- 核心流程分析之数据库读写设计
接上篇解析了mybatis核心运行流程的第二阶段-mapper编程模型的构建这块。当时提出的问题在第二阶段其实只解决了一半是吧,那么今天我们就通过核心运行流程的第三阶段--sql数据读写的解析来继续解答这个问题。核心运行流程要把握这个阶段sql数据读写的脉络,在分析源码之前,我们就需要了解整个过程中一个核心的组件:Executor执行组件,它是mybatis数据读写的模板也是基础的设计骨架。执行组
wavebeed
·
2020-08-22 19:04
mybatis
源码解析
数据读写
mybatis源码解析
MyBatis源码解析
MyBatis源码解析
如何编译源码仓库地址1、idea中打开项目(推荐在导入idea之前,在命令行先将项目编译通过,命令mvncleancompile)2、等待解析依赖备注:解析依赖的过程中有可能某些jar
吃不胖的茶叶蛋
·
2020-08-21 23:10
mybatis源码解析
- 核心流程分析之编程模型构建
前言上篇我们分享了mybatis配置解析和初始化的过程,今天我们接着进入下个阶段。在进入下个阶段前,我想抛一个问题,我们在spring里面直接使用Mapper接口去执行sql语句,这过程中并没有Mapper的实现类,请问mybatis是怎么为我们神奇的完成整个数据读写过程的?今天我们就一起来解密这个过程。核心运作流程要解决篇头提出的问题,我们就得读mybatis的Mapper编程模型这块的源码。M
wavebeed
·
2020-08-21 21:25
mybatis
源码解析
核心流程
mybatis源码解析
mybatis源码解析
- 核心流程之配置解析
前言在mybatis框架的整个架构中其实有一些在平时开发看来比较耗时的环节,如果在项目启动完成后在去初始化是性能和体验很不好的。比如:反射组件初始化、配置文件的解析和加载到内存、二级缓存模型的构建过程、日志组件的初始化等。还好这些mybatis都为我们考虑到了。今天我们就从mybatis框架的初始化开始聊聊项目启动时配置加载的话题。核心运作流程我把mybatis的运作流程分为以上三个大的阶段:首先
wavebeed
·
2020-08-21 16:45
mybatis
源码分析
核心流程
mybatis源码解析
MyBatis源码解析
(十)——Type类型模块之类型处理器TypeHandler
原创作品,可以转载,但是请标注出处地址:http://www.cnblogs.com/V1haoge/p/6715063.html1、回顾之前的两篇分别解析了类型别名注册器和类型处理器注册器,此二者皆是解析XML映射文件中参数类型与返回结果类型的基础,别名注册器用于通过别名找到对应的类类型,类型处理器注册器则用于通过类类型来找到对应了类型处理器与数据库类型,以此来完成进出数据库数据与java之间类
weixin_30376163
·
2020-08-20 19:27
mybatis源码解析
- 核心基础组件之反射
接上篇文章我们分享了mybatis缓存组件后,今天我们来分享一下mybatis的动态反射组件。mybatis反射模块封装得非常精妙,大家如果在项目中有POJO对象通用反射搞不定的,可以多参考一下mybatis反射组件。今天我们就来读读这块源码。整体设计架构mybatis对POJO反射这块的设计,我的源码思路是按照如下的流程来的首先,根据POJO类实例化创建相应的对象,这步实际实现的入口在Defau
wavebeed
·
2020-08-20 18:04
mybatis
源码分析
核心组件
mybatis源码解析
mybatis源码解析
之 TypeHandler
TypeHanlerMyBatis在预处理语句(PreparedStatement)中设置一个参数或者从结果集中取出一个值时,都会用类型处理器将获取的值以合适的方式转换成Java类型。Mybatis默认为我们实现了许多TypeHandler,当我们没有配置指定TypeHandler时,Mybatis会根据参数或者返回结果的不同,默认为我们选择合适的TypeHandler处理。在MyBatis中,S
wenxueliu@HW
·
2020-08-20 10:41
mybatis
MyBatis
源码分析
Spring Boot系列(三):Spring Boot整合
Mybatis源码解析
一、Mybatis回顾1、MyBatis介绍Mybatis是一个半ORM框架,它使用简单的XML或注解用于配置和原始映射,将接口和Java的POJOs(普通的Java对象)映射成数据库中的记录。2、Mybatis整体架构二、SpringBoot整合Mybatis+Druid1、在应用中导入maven依赖如下:org.mybatis.spring.bootmybatis-spring-boot-st
toby.xu
·
2020-08-20 01:00
mybatis源码解析
- 核心基础组件之缓存
接上次聊到了mybatis数据源组件后,今天我们来看看大家平时可能都用了的缓存组件。其实缓存组件在我们项目中要谨慎地选择使用,用不好不仅不会带来性能上的提升,反而会出现数据的错乱问题,为什么呢?那莫过于从mybatis缓存组件源码中来找到答案了。整体设计架构缓存的概况1.首先mybatis的缓存分为一级缓存和二级缓存,一级缓存默认是开启的(你可以再mapper.xml中select标签加入flus
wavebeed
·
2020-08-19 21:43
mybatis
源码分析
核心组件
mybatis源码解析
mybatis源码解析
- 核心基础组件之数据源组件
接上次分享了日志组件后,我们这次来分享一个比较重要mybatis基础组件---数据源组件。提到数据源组件,我想问一个问题:请问从mybatis连接池获取一个数据库连接的过程是怎样的?你知道吗?这好像是BAT大厂的一道面试题吧。别着急我们慢慢来聊。整体设计架构今天来分享一下数据源组件的源码实现细节工厂模式的设计思路DataSourceFactory:工厂模式的核心接口,调用者直接和工厂接口交互,用于
wavebeed
·
2020-08-19 12:51
mybatis
源码分析
数据源
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
其他