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源码分析
——SqlSession的创建过程
正文SqlSession是mybatis的核心接口之一,是myabtis接口层的主要组成部分,对外提供了mybatis常用的api。myabtis提供了两个SqlSesion接口的实现,常用的实现类是DefaultSqlSession,它相当于一个数据库连接对象,在一个SqlSession中可以执行多条SQL语句。创建SqlSession前面的两篇文章已经得到了SqlSessionFactory,
小波同学
·
2020-12-27 01:17
Mybatis源码分析
——Mapper映射的解析过程
这篇文章具体来看看mapper.xml的解析过程mappers配置方式mappers标签下有许多mapper标签,每一个mapper标签中配置的都是一个独立的映射配置文件的路径,配置方式有以下几种。接口信息进行配置注意:这种方式必须保证接口名(例如UserMapper)和xml名(UserMapper.xml)相同,还必须在同一个包中。因为是通过获取mapper中的class属性,拼接上.xml来
小波同学
·
2020-12-26 19:27
mybatis源码分析
-环境搭建
本文主要搭建一个简单的项目,用于后面的源码探究,熟悉mybatis的可以略过此章节。数据库表创建创建一张表deptCREATETABLE`dept`(`id`int(11)NOTNULLAUTO_INCREMENT,`dept_name`varchar(255)DEFAULTNULL,`address`varchar(255)DEFAULTNULL,PRIMARYKEY(`id`))ENGINE=
指尖改变世界
·
2020-12-24 17:08
mybatis
源码分析
Mybatis源码分析
——创建SqlSessionFactory
一、搭建Mybatis环境1、引入maven依赖org.mybatismybatis3.5.6mysqlmysql-connector-java8.0.182、创建mybatis的配置文件mybatis-config.xml3、entity和mapper@DatapublicclassUser{intid;Stringname;}publicinterfaceUserMapper{ListgetA
小波同学
·
2020-12-24 01:41
mybatis源码_MyBatis源码篇
Mybatis源码分析
一、整体架构图二、核心组件Configuration:用于描述MyBatis主配置文件信息,MyBatis框架在启动时会加载主配置文件,将配置信息转换为Configuration对象
weixin_39687667
·
2020-12-05 04:53
mybatis源码
mybatis源码分析
(二) 执行过程
这边博客衔接上一篇mybatis的xml解析的博客,在xml解析完成之后,首先会解析成一个Configuration对象,然后创建一个DefaultSqlSessionFactory的session工厂。在这一切的准备过程完成之后,就可以开始对数据库的操作了。首先看openSession()方法privateSqlSessionopenSessionFromDataSource(ExecutorT
liangtengyu
·
2020-11-30 22:53
java
mybatis源码分析
(一) 配置文件的解析过程
mybatis的源码有人已经做过一个中文的注释,代码github上有mybatis中文注释源码mybatis框架有两个非常重要的xml文件,一个是mybatis的config文件,一个就是mapper文件,mybatis会根据config的xml文件去生成一个Configuration类,在这个过程中也会根据配置的mapper文件生成MappedStatement,这篇博客探究的就是这样一个过程,
liangtengyu
·
2020-11-30 22:53
java
mybatis源码分析
(一) 配置文件的解析过程
mybatis的源码有人已经做过一个中文的注释,代码github上有mybatis中文注释源码mybatis框架有两个非常重要的xml文件,一个是mybatis的config文件,一个就是mapper文件,mybatis会根据config的xml文件去生成一个Configuration类,在这个过程中也会根据配置的mapper文件生成MappedStatement,这篇博客探究的就是这样一个过程,
liangtengyu
·
2020-11-30 22:19
java
mybatis源码分析
(二) 执行过程
这边博客衔接上一篇mybatis的xml解析的博客,在xml解析完成之后,首先会解析成一个Configuration对象,然后创建一个DefaultSqlSessionFactory的session工厂。在这一切的准备过程完成之后,就可以开始对数据库的操作了。首先看openSession()方法privateSqlSessionopenSessionFromDataSource(ExecutorT
liangtengyu
·
2020-11-30 22:18
java
Mybatis源码分析
(一)
准备在阅读源码前,需要先clone源码地址:https://github.com/mybatis/my...Mybatis框架使用大量常见的设计模式,学习Mybatis源码我们主要学习以下几点:学习大佬们的编码思想及规范学习一些传承下来的设计模式实践java基础理论带着问题阅读源码问题1:源码中用了哪些设计模式?为什么要用这些设计模式?问题2.Mybatis打开调试模式之后,能打印sql语句等信息
liangtengyu
·
2020-11-26 13:43
java
Mybatis源码分析
(一)
准备在阅读源码前,需要先clone源码地址:https://github.com/mybatis/my...Mybatis框架使用大量常见的设计模式,学习Mybatis源码我们主要学习以下几点:学习大佬们的编码思想及规范学习一些传承下来的设计模式实践java基础理论带着问题阅读源码问题1:源码中用了哪些设计模式?为什么要用这些设计模式?问题2.Mybatis打开调试模式之后,能打印sql语句等信息
liangtengyu
·
2020-11-26 13:11
java
《一本小小的
MyBatis源码分析
书》.pdf
关注“Java后端技术全栈”回复“面试”获取全套面试资料什么是MyBatis?MyBatis免除了几乎所有的JDBC代码以及设置参数和获取结果集的工作。MyBatis有什么优点?与JDBC相比,减少了50%以上的代码量MyBatis是最简单的持久化框架,小巧并且简单易学MyBatis灵活,不会对应用程序或者数据库的现有设计强加任何影响提供XML标签,支持编写动态SQL语句提供映射标签,支持对象与数
田维常
·
2020-11-13 17:34
电子书
mybatis
mybatis源码分析
-利用JDK动态代理分析源码-JDK动态代理在mybatis中的应用
需要你对JDK动态代理有所了解,我的另一篇文件种详细讲解了JDK动态代理源码地址:https://blog.csdn.net/qq_37391371/article/details/109460734内容:
mybatis
戒骄戒躁NB
·
2020-11-04 01:42
mybatis
java
源码
jdk动态代理
ssm
[
MyBatis源码分析
- 日志模块]
一、日志概述 衡量软件产品的质量时,是否具备完善的日志是个非常重要的因素。开发测试阶段,需要日志帮助我们完善功能和发现bug;生产上,当出现生产问题时,又需要日志帮助我们定位问题发生现场的情况。同时,日志还是开发与运维之间的桥梁,有助于运维管理人员快速查找系统的故障和瓶颈,良好的日志在一个软件中占了非常重要的地位。 日志对于排查问题很有帮助,但不是越多越好,过多冗余的日志,不管是日志输出还是保
小胡_鸭
·
2020-11-03 23:06
Mybatis源码解析,撸起袖子就是学
Mybatis是一个很容易上手的持久层框架,相信大家在项目中或许经常用到它,最最近读了一本⽥忠波的小小的
mybatis源码分析
书之后对mybatis具有了更加深入的了解,接下来我来和大家一起解剖一下mybatis
Youcan_〇
·
2020-09-27 10:44
Mybatis源码分析
之参数处理
Mybatis对参数的处理是值得推敲的,不然在使用的过程中对发生的一系列错误直接懵了。以前遇到参数绑定相关的错误我就是直接给加@param注解,也稀里糊涂地解决了,但是后来遇到了一些问题推翻了我的假设:单个参数不需要使用@param。由此产生了一个疑问,Mybatis到底是怎么处理参数的?几种常见的情景:单个参数不使用注解,基于${}和#{}的引用,基本类型和自定义对象都可以不使用注解,基于for
chengtaopai5214
·
2020-09-17 15:50
myBatis源码解析-二级缓存的实现方式
1.前言前面近一个月去写自己的mybatis框架了,对
mybatis源码分析
止步不前,此文继续前面的文章。开始分析mybatis一,二级缓存的实现。
超人小冰
·
2020-09-16 18:00
MyBatis源码分析
之装饰模式和适配器模式的应用
装饰模式的应用装饰模式:动态的为对象增加新的功能,用于代替继承,避免类型体系的快速膨胀(熟悉代码规则的应该都知道,类往上追溯父类,层级不能超过5)。装饰模式的组成:1.Component:组件接口2.ConcreteComponent:真实组件接口,对象可以被真实装饰组件动态添加新的功能3.Decorator:抽象装饰组件4.ConcreteDecorator:真实装饰组件,同时也实现组件接口,传
jian_j_z
·
2020-09-16 11:07
设计模式
MyBatis
MyBatis源码分析
之迭代器模式和组合模式的应用
迭代器模式的应用迭代器模式:又称游标模式,提供一种方法访问容器对象中的各个元素,而又不需要暴露该对象的内部实现细节,分离了集合对象的遍历行为,抽象出一个迭代器类来负责。迭代器模式的组成:1.Iterator:迭代器定义访问和遍历元素的接口。2.ConcreteIterator:具体迭代器实现迭代器接口。对该聚合遍历时跟踪当前位置。3.Aggregate:聚合定义创建相应迭代器对象的接口。4.Con
jian_j_z
·
2020-09-16 11:07
MyBatis
设计模式
MyBatis源码分析
之策略模式和模板方法模式的应用
策略模式的应用MyBatis配置文件mybatis-config.xml中的节点settings中有一项配置如下:配置的是MyBatis在运行过程中默认的执行器Executor,此项配置的默认值就是SIMPLE,指向就是接口Executor的实现类SimpleExecutor。通过查看源码可以看得到接口Executor的继承关系如下:这些实现类为接口Executor的策略簇,实现了不同的执行器策略
jian_j_z
·
2020-09-16 11:06
设计模式
MyBatis
Mybatis源码分析
之插件的原理
MyBatis允许你在已映射语句执行过程中的某一点进行拦截调用。默认情况下,可以使用插件来拦截的方法调用包括:Executor(update,query,flushStatements,commit,rollback,getTransaction,close,isClosed)ParameterHandler(getParameterObject,setParameters)ResultSetHa
weixin_34418883
·
2020-09-15 12:56
【
MyBatis源码分析
】插件实现原理
MyBatis插件原理----从解析开始本文分析一下MyBatis的插件实现原理,在此之前,如果对MyBatis插件不是很熟悉的朋友,可参看此文MyBatis7:MyBatis插件及示例----打印每条SQL语句及其执行时间,本文我以一个例子说明了MyBatis插件是什么以及如何实现。由于MyBatis的插件已经深入到了MyBatis底层代码,因此要更好地使用插件,必须对插件实现原理及MyBati
weixin_33912445
·
2020-09-15 12:26
【
Mybatis源码分析
】06-SqlSession执行过程之获取BoundSql代理对象
上篇文章分析Mapper的查询操作最终都会调用SqlSession的selectList方法,接下来几篇文章分析一下DefaultSqlSession的selectList的执行过程。publicListselectList(Stringstatement,Objectparameter,RowBoundsrowBounds){try{MappedStatementms=configuration
一直不懂
·
2020-09-12 11:19
Mybatis源码分析
【
Mybatis源码分析
】05-SqlSession执行过程之获取Mapper代理对象
当我们通过DefaultSqlSession的Mapper方式操作数据库时使用如下api:TgetMapper(Classtype);此方法返回一个实现了type接口的实现类的实力,我们分析一下此实力的创建过程。publicTgetMapper(Classtype){returnconfiguration.getMapper(type,this);}publicTgetMapper(Classty
一直不懂
·
2020-09-12 11:49
Mybatis源码分析
小白都能懂的
Mybatis源码分析
Mybatis源码分析
MyBatis是当前最流行的java持久层框架之一,Mybatis方便地解决了我们之前使用jdbc大量重复的getter、setter,使用起来很方便。源码分析的切入点在哪呢?
码农写笔记
·
2020-09-12 05:24
源码
mybatis
java
Mybatis源码分析
总结
Mybatis源码分析
MyBatis是一款优秀的持久层框架,它支持自定义SQL、存储过程以及高级映射。本文将对将对Mybatis主要的底层源码进行分析,首先给出其使用的步骤代码。
Risesun*
·
2020-09-12 04:22
JavaWeb
Mybatis
mybatis
java
反射
Mybatis源码分析
-BaseExecutor
根据前文
Mybatis源码分析
-SqlSessionTemplate的简单分析,对于SqlSession的CURD操作都需要经过Executor接口的update/query方法,本文将分析下BaseExecutor
weixin_30667649
·
2020-09-11 04:04
Mybatis源码分析
: MapperMethod功能讲解
canmengqian博客园首页新随笔联系订阅管理随笔-32文章-5评论-2
Mybatis源码分析
:MapperMethod功能讲解(1)
Mybatis源码分析
:MapperMethod功能讲解(1)MapperMethod
薛定谔的猫粮_
·
2020-08-25 17:41
MyBatis
springboot集成
mybatis源码分析
-mybatis的mapper执行查询时的流程(三)
springboot集成
mybatis源码分析
-mybatis的mapper执行查询时的流程(三)例:packagecom.example.demo.service;importcom.example.demo.dao.UserDao
巡山小妖008
·
2020-08-25 17:35
springboot
mybatis相关执行流程,原理等
《深入理解mybatis原理》MyBatis的架构设计以及实例分析http://blog.csdn.net/luanlouis/article/details/40422941--必看
MyBatis源码分析
菠萝科技
·
2020-08-25 16:32
java·未分类
mybatis源码分析
----- Mybatis为什么只写接口就能执行sql?
Mybatis为什么只写接口就能执行sql?至于这个问题,也算是一个常见的面试题,基本都会答动态代理,那么动态代理到底是如何做的呢?Configuration对象Mybatis会将配置文件和映射文件中的所有信息保存在这个对象中。其中有一个属性为mapperRegistry。这个属性保存接口和它对应的代理工厂//接口和代理类的注册中心protectedfinalMapperRegistrymappe
你的酒窝里有酒
·
2020-08-25 09:56
mybatis
mybatis源码分析
---- Properties节点解析
解析Properties节点Properties节点用来引入外部文件,或者存储一些配置的值。在后面可以通过${name}的值直接使用-->-->其有两个属性,分别是url,resource,两个值不能共存。否则会抛出异常。在解析的过程中优先解析子节点,再解析属性,最终将解析的值存入configuration对象的properties属性中。因此会存在同名覆盖的情况。即外部文件的值会覆盖子节点中的值
你的酒窝里有酒
·
2020-08-25 09:55
mybatis
MyBatis源码分析
_获取openSession 方法
SqlSessionopenSession=sqlSessionFactory.openSession();根据配置文件创建不同的Executor默认为publicExecutornewExecutor(Transactiontransaction,ExecutorTypeexecutorType){executorType=executorType==null?defaultExecutorTy
爪 哇
·
2020-08-22 22:28
MyBatis
Mybatis源码分析
--关联表查询及延迟加载原理(二)
在上一篇博客
Mybatis源码分析
--关联表查询及延迟加载(一)中我们简单介绍了Mybatis的延迟加载的编程,接下来我们通过分析源码来分析一下Mybatis延迟加载的实现原理。
归田
·
2020-08-22 22:20
myBatis入门及源码学习
Mybatis入门及源码学习
模块一:持久层框架设计实现及
MyBatis源码分析
面试题(汇总笔记)阶段一:开源框架源码剖析模块一:持久层框架设计实现及
MyBatis源码分析
2020/5/251.通常一个Xml映射文件,都会写一个Dao接口与之对应,请问,这个Dao接口的工作原理是什么
种树
·
2020-08-21 22:40
MyBatis
Mybatis源码分析
(六):执行sql
获取SqlSession后,下一步就是执行sql.Useruser=sqlSession.selectOne("last.soul.mapper.UserMapper.selectById",map);DefaultSqlSession的主要功能就是实现增删改查功能,以及它们的重载方法。就查询来说,最后都会调用select方法,然后改装成selectOne,selectMap等,代码如下:/***
高旭
·
2020-08-21 03:25
mysql
源码分析
mybatis源码分析
-mapper文件之sql标签
前面了解到mybatis解析完resultMap标签的内容后,对sql进行解析,来看一下sql的解析过程。privatevoidsqlElement(Listlist)throwsException{if(configuration.getDatabaseId()!=null){sqlElement(list,configuration.getDatabaseId());}sqlElement(l
搬砖丶小码农
·
2020-08-20 11:18
mybatis
MyBatis源码分析
-IDEA新建MyBatis源码工程
MyBatis是支持定制化SQL、存储过程以及高级映射的优秀的持久层框架。MyBatis避免了几乎所有的JDBC代码和手动设置参数以及获取结果集。MyBatis可以对配置和原生Map使用简单的XML或注解,将接口和Java的POJOs(PlainOldJavaObjects,普通的Java对象)映射成数据库中的记录。项目GitHub地址下载MyBatis源码,导入到IDEA工程(Maven工程)中
weixin_34292287
·
2020-08-20 08:50
Mybatis源码分析
(五):Mapper接口的方法调用与SQL的执行
概述在应用代码中,如果不结合spring来使用mybatis,则需要通过SqlSession获取mapper接口对应的代理对象MapperProxy,然后通过该代理对象来调用并执行mapper接口的方法。使用示例如下:Stringresource="org/mybatis/example/mybatis-config.xml";InputStreaminputStream=Resources.ge
服务端开发
·
2020-08-17 09:59
Mybatis
mybatis源码分析
MyBatis源码分析
核心的功能模块:binding:把传入的参数对象转换为sql后的条件executor:负责sql的执行和拼接statement:SimpleStatementHandler,负责sql
missing_mjj
·
2020-08-17 07:15
apache
JavaSE
【
Mybatis源码分析
15】mybatis整合redis做二级缓存
目录MyBatis二级缓存出现的原因使用mybatis自带的二级缓存mybatis配置文件中settings开启二级缓存@CacheNameSpace使用二级缓存@Cacheable添加缓存@CacheEvict清除指定区域的缓存测试debug打印日志PerpetualCache的实现原理外接第三方缓存pom.xml中添加mybatis-redis依赖resource资源文件夹下配置redis.p
OneTask
·
2020-08-17 06:43
Mybatis
Redis
mybatis源码分析
6 - mybatis-spring容器初始化
1引言使用MyBatis-Spring模块,我们可以在Spring中使用mybatis,让Spring容器来管理sqlSessionFactory单例的创建。如以下代码我们只需要指定两个属性即可,一是dataSource数据库源,二是configuration对象或configLocation配置文件所在位置。那么有这两个属性是如何创建sqlSessionFactory对象的呢,这一节我们详细分析
谢杨易
·
2020-08-15 01:04
移动开发
springboot整合
mybatis源码分析
目的上篇博客,我说了两种整合的方式,其中关键的一句话就是1.在mapper接口(dao接口)中,使用@Mapper注解,这种方式,无需使用配置类,无需使用@MapperScan注解,即可整合2.在mapper接口中,使用@Repository注解或者不添加任务注解,在全配置类上添加@MapperScan注解,并指定要扫描的包这篇博客,我说下这两种整合方式的原理原理解析在整合的时候,如果使用的是@M
小小少年_
·
2020-08-12 14:10
mybatis源码
Mybatis源码分析
之Mapper注册与绑定
Mybatis是一个「面向sql」的持久层框架,它可实现动态拼装sql,极其灵活,同时避免了几乎所有的JDBC代码和手动设置参数以及获取结果集,其插件机制允许在已映射语句执行过程中的某一点进行拦截调用等等,让我忍不住想要撸一撸它的源码。我们都知道Mapper是一个接口,它的每个方式是我们与数据库交互的入口,每个Mapper都有与之相对应的一个XML文件,我们可以在XML里面自由快活地写sql,当然
后端进阶
·
2020-08-12 00:42
Mybatis源码分析
(二):SqlSessionFactory与框架启动加载
概述Mybatis作为一个SQL管理和执行框架,在web应用程序当中充当数据库访问中间件的角色,即应用程序在接收到请求时,通过DAO层方法从mybatis获取一个数据库连接,然后通过该连接将对应的SQL发送给数据库执行,最后获取返回结果。同时可以通过该连接发送多条SQL,即发送多个请求给数据库,所以该数据库连接的作用就相当于web浏览器中的一个会话。基于这个业务背景,在mybatis的设计中使用S
服务端开发
·
2020-08-10 21:52
Mybatis
Mybatis源码分析
(三):mapper.xml的解析及namespace与Mapper接口的映射
概述由上一篇文章:
Mybatis源码分析
(二):SqlSessionFactory与框架启动加载分析可知,在调用SqlSessionFactoryBuilder的build方法创建SqlSessionFactory
服务端开发
·
2020-08-10 13:42
Mybatis
Mybatis源码分析
:从解析xml到获取结果集
Mybatis源码分析
一:mybatis的使用1.mybatis的入口2.配置文件的配置二:IDEA如何下载源码1.IDEA的配置2.Maven更新3.Downloadsources三:源码分析1.获取数据源
bluesnail95
·
2020-08-10 07:17
mybatis
Mybatis源码分析
(02)-配置文件解析概述
文章目录使用Mybatis操作数据库SqlSessionFactoryBuilderBaseBuilderXMLConfigBuilder使用Mybatis操作数据库使用Mybatis操作数据库的基本写法如下:@TestpublicvoidtestMybatis(){//1.加载配置文件InputStreamresourceAsStream=Resources.getResourceAsStrea
couthz
·
2020-08-09 19:06
#
java
Mybatis
数据库
Mybatis源码分析
(01)-JDBC操作回顾,Mybatis整体架构概览
一JDBC的规范操作及问题回顾假设数据库test中有一张表account直接使用JDBC,dao层的实现类可能会是如下的写法:publicclassAccountDaoImplimplementsAccountDao{//问题1:数据库配置信息,存在硬编码问题,修改信息就要重新编译privateStringdriver="com.mysql.jdbc.driver";privateStringur
couthz
·
2020-08-09 19:06
#
java
Mybatis
Mybatis源码分析
(03)-配置文件解析-mappers标签四种配置方式的处理
文章目录mappers标签四种配置方式源码分析mappers标签四种配置方式上一篇中提到XMLConfigBuilder.mapperElement()方法,该方法用于对核心配置文件中标签的解析,先回顾一下标签中,对于mapper接口或映射文件的几种引入方式:源码分析回到mapperElement()方法,可以看出对映射文件不同引入方式的解析privatevoidmapperElement(XNo
couthz
·
2020-08-09 19:06
#
java
Mybatis
数据库
mybatis
java
数据库
spring
上一页
1
2
3
4
5
6
7
8
下一页
按字母分类:
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
其他