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源码
-cursor(游标)
今天学习一下cursor包的下源码,了解mybatis大致游标实现目录1、Cursor(游标接口类)1.1源码1.2总结2、DefaultCursor(默认游标实现类)2.1、源码2.2、总结1、Cursor(游标接口类)1.1源码/***Copyright2009-2019theoriginalauthororauthors.**LicensedundertheApacheLicense,Ver
往前的娘娘
·
2020-07-07 16:26
mybatis源码
MyBatis源码
Mybatis源码
学习-MapperMethod
MapperMethod是代理方式的实际执行类,JDK动态代理调用的invoke方法,实际是转发到了MapperMethod的execute方法,参考源码如下:publicObjectinvoke(Objectproxy,Methodmethod,Object[]args)throwsThrowable{if(Object.class.equals(method.getDeclaringClass
Lescarmon
·
2020-07-07 13:10
深入
Mybatis源码
——配置解析
@目录前言正文配置解析1.cacheRefElement/cacheElement2.resultMapElements3.sqlElement4.buildStatementFromContext总结前言上一篇分析了Mybatis的基础组件,Mybatis的运行调用就是建立在这些基础组件之上的,那它的执行原理又是怎样的呢?在往下之前不妨先思考下如果是你会怎么实现。正文熟悉Mybatis的都知道,
夜勿语
·
2020-07-07 12:00
mybatis查询mysql的datetime类型数据时间差问题
现在开始调试
mybatis源码
,调试到mysql-connector-java-6.0.4.jar包的com.mysql.c
hechurui
·
2020-07-07 09:09
mysql
Mybatis源码
之连接池原理实现探究
CommonDataSource数据池的定义是在jdk库中,是对数据源概念的抽象顶层,指定了数据源必须实现的方法。一、非线程池实现方式:UnpooledDataSource概述一下其链接的过程如下图:如何创建一个连接:二、线程池方式维护链接:使用线程池可以减少频繁创建、销毁线程带来的性能损害。通过配置各种参数保证系统在实际的应用中有更好的负载和性能之间获得更好的实践。Mybatis提供了一个简单的
adeyi
·
2020-07-07 02:18
java
框架
java源码
Mybatis
SpringBoot-Mybatis通用mapper使用
mybatis是一个很好用的工具,但是编写mapper是一件很麻烦的事,自mybatis3.0开始可以使用注解的方式,极大的简化了xml的编写量,本地想看看
mybatis源码
,自己扩展写一个工具,在阅读源码过程中发现一个通用
ZenMonk
·
2020-07-06 21:46
Mybatis源码
初探——优雅精良的骨架
@目录前言精良的Mybatis骨架宏观设计基础支撑日志日志的加载日志的使用数据源数据源的创建池化技术原理数据结构获取连接回收连接缓存缓存的实现CacheKey反射总结前言Mybatis是一款半自动的ORM框架,是目前国内Javaweb开发的主流ORM框架,因此作为一名开发者非常有必要掌握其实现原理,才能更好的解决我们开发中遇到的问题;同时,Mybatis的架构和源码也是很优雅的,使用了大量的设计模
夜勿语
·
2020-07-06 17:00
2017年度计划
上面刷题,每周刷至少10题,并写出博客进行分享读完《大话数据结构》,并理解数据结构和算法继续深入学习实践java多线程、IO、集合、JVM虚拟机了解服务器JVM参数调优和Tomcat调优,并进行实战熟读
mybatis
端木轩
·
2020-07-06 15:28
Mybatis源码
(五)
6、SimpleExecutor.doQuery()1)创建StatementHandler在configuration.newStatementHandler()中,new一个newStatementHandler,先得到RoutingStatementHandler。RoutingStatementHandler里面没有任何的实现,使用来创建基本的StatementHandler的。这里会根据
snail灬
·
2020-07-06 15:00
Mybatis源码
(四)
四、执行SQLUseruser=mapper.selectUser(1);由于Mapper都是JDK动态代理对象,所以任意的方法都是执行触发管理类MapperProxy的invoke()方法。QA:1.引入MapperProxy为了解决什么问题?硬编码和编译时检查问题。他需要做的事情是:根据方法查找statementID的问题。2.进入到invoke方法的时候做了什么事情?他是怎么找到我们要执行的
snail灬
·
2020-07-06 14:00
Mybatis源码
(三)
三、获取Mapper对象在老的版本中,DefaultSqlSession的selectOne()方法可以直接根据Mapper.xml中的StatementID,找到SQL执行。但是这种方法属于硬编码,不以查找和修改。并且如果是参数传入错误,在编译阶段也是不会报错的,不利于提前发现问题。Useruser=(User)session.selectOne("com.xx.mapper.UserMappe
snail灬
·
2020-07-06 14:00
Mybatis源码
(二)
程序每一次操作数据库,都需要创建一个会话,我们用openSession()方法来创建。SqlSessionsession=sqlSessionFactory.openSession();这里的sqlSessionFactory用到的是默认实现类,在openSessionFromDataSource()方法中创建。privateSqlSessionopenSessionFromDataSource(
snail灬
·
2020-07-06 14:00
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的Mapper接口的动态代理机制
Mybatis源码
中Mapper的动态代理实现原理现在工作中用的最多的就是Mybatis这款半自动ORM框架,用的久却对其了解不是很深,现在准备对其进行一些深入的学习,顺便对知识进行查漏补缺.本篇是对Mapper
wonderful_life_mrchi
·
2020-07-06 07:18
JavaEE框架
mybatis源码
| mybatis插件及动态代理的使用
学习背景最近公司在做一些数据库安全方面的事情,如数据库中不能存手机号明文,不能存身份证号明文,但是项目已经进行了好几个月了,这时候在应用层面去改显然不太现实,所以就有了Mybatis的自定义插件就出场了!插件知识点总述一.mybatis的插件,使用拦截器链的方式调用其代码抽象如下所示org.apache.ibatis.plugin.InterceptorChainpublicObjectplugi
微笑的小小刀
·
2020-07-05 20:07
Java架构师之源码分析专题SpringBoot2.x、Spring5、SpringMVC、
Mybatis源码
分析
Java架构师之源码分析专题SpringBoot2.x、Spring5、SpringMVC、
Mybatis源码
分析源码中我们可以学到很多东西,学习别人高效的代码书写、学习别人对设计模式的熟练使用、学习别人对整个架构的布局等等
gotobackto
·
2020-07-05 16:02
mybatis源码
解读二动态sql标签解析
每个select、insert/、update、delete对应一个MappedStatement对象,每个MappedStatement包含一个SqlSource,一个SqlSource含有一个MixedSqlNode,静态sql,${},include在解析mpper文件生成MixedSqlNode时,就已经被替换和解析、DynamicSqlSource:处理动态sql,RawSqlSourc
无心人偶
·
2020-07-05 12:15
mybatis
mybatis源码
解读(一)——初始化环境
目录1、数据库建表2、项目的目录结构3、pom文件4、资源文件配置5、pojo类6、mapper文件7、测试类8、测试结果9、总结本系列博客将对mybatis的源码进行解读,关于mybatis的使用教程,可以查看我前面写的博客——传送门。为了便于后面的讲解,我们这里首先构造一个统一环境。也可以参考mybatis官网。回到顶部1、数据库建表DROPTABLEIFEXISTS`user`;CREATE
sllin
·
2020-07-05 12:09
#
mybatis源码解读
Mybatis源码
分析—Mapper创建和Spring的管理
Mybatis源码
分析—Mapper创建和Spring的管理我们分析的时候先自己猜测实现方式再对比mybatis的源码实现方式mapper创建因为mybatis可以脱离spring自己使用,所以mapper
不想努力的工大青年
·
2020-07-05 10:05
java
Mybatis源码
解析之Spring集成mybatis-spring分析
Mybatis源码
解析之核心类分析
Mybatis源码
解析之初始化分析
Mybatis源码
解析之执行流程解析
Mybatis源码
解析之数据库连接和连接池
Mybatis源码
解析之事务管理
Mybatis源码
解析之缓存机制
翻身已碰头
·
2020-07-05 07:14
Mybatis
Mybatis源码解析
mybatis疑惑--Mapper接口如何实例化
开始分析
mybatis源码
:myb
键盘源
·
2020-07-05 06:58
后端插件
Spring-
Mybatis源码
分析
首先给出Spring-mybatis的配置文件mybatis-cfg.xml核心类是MapperScannerConfigurerpublicclassMapperScannerConfigurerimplementsBeanDefinitionRegistryPostProcessor,InitializingBean,ApplicationContextAware,BeanNameAware这
枯木生花
·
2020-07-05 03:27
Mybatis
Mybatis源码
分析与仿写
Mybatis源码
分析项目介绍xml文件select*fromgirl0">andid=#{id}java文件//GirlMapper接口中publicinterfaceGirlMapper{GirlqueryById
华盛顿可乐
·
2020-07-05 03:16
Mybatis源码
分析之结果封装ResultSetHandler和DefaultResultSetHandler
ResultSetHandler负责处理两件事:(1)处理Statement执行后产生的结果集,生成结果列表(2)处理存储过程执行后的输出参数ResultSetHandler是一个接口,提供了两个函数分别用来处理普通操作和存储过程的结果,源码如下:/***@authorClintonBegin*/publicinterfaceResultSetHandler{ListhandleResultSet
归田
·
2020-07-05 02:53
myBatis入门及源码学习
Mybatis入门及源码学习
读
mybatis源码
之十:主键生成KeyGenerator
在mybatis里面经常遇到生成主键的问题,使用自增或者序列,保存对象后对象里面有主键值,来看看是怎么处理的:1、在BaseStatementHandler里面有生成generateKeys,主要是执行:protectedvoidgenerateKeys(Objectparameter){KeyGeneratorkeyGenerator=mappedStatement.getKeyGenerato
jsj01113ng
·
2020-07-04 20:23
读源码
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源码
之Statement处理器SimpleStatementHandler(四)
SimpleStatementHandler就是使用基本的Statement来执行query、batch、update等操作,其实现还是比较简单的,当然在执行过程中会涉及keyGenerator和ResultHandler操作,这些我们会在接下来的博客中进行详解。SimpleStatementHandler用于执行简单的sql语句,这里简单的sql语句是指sql语句中没有变量,不会通过外部进行参数
Roger_CoderLife
·
2020-07-04 07:59
Java
-
MyBatis
Mybatis源码
解析之模块解析:插件模块
介绍我之前有篇文章大概写了一下mybatis插件的实现原理Mybatis只写了接口,为什么能运行?Mybaits插件的实现主要用了责任链模式和动态代理动态代理可以对SQL语句执行过程中的某一点进行拦截,当配置多个插件时,责任链模式可以进行多次拦截,责任链模式的UML图如下可以看到在一条责任链中,每个Handler对象都包含对下一个Handler对象的引用,一个Handler对象处理完消息会把请求传
Java识堂
·
2020-07-04 04:08
MyBatis
[疫情期间复习]
mybatis源码
分析系列(三) SqlSessionFactory之sql执行流程
上节分析我们已经拿到了sqlsessionFactory工厂具体怎么执行sql呢开始分析通过测试案例我们看到了sqlsessionFactory.openSession()privateSqlSessionopenSessionFromDataSource(ExecutorTypeexecType,TransactionIsolationLevellevel,booleanautoCommit){
java自修之路
·
2020-07-02 17:13
java
mybatis
源码分析
[疫情期间复习]
mybatis源码
分析系列(二) SqlSessionFactory创建过程
强调一些分析的mybatis3第一个问题mybatis是如何加载配置文件的如果数据源别名等信息从测试用例我们能看到这一段代码@BeforeAllstaticvoidsetUp()throwsException{//读取配置文件数据流try(Readerreader=Resources.getResourceAsReader("org/apache/ibatis/autoconstructor/my
java自修之路
·
2020-07-02 17:41
java
mybatis
源码分析
java
mybatis
xml
mybatis源码
学习--mybatis懒加载内部原理
笔者最近研究mybatis比较多,所以打算把最近研究的mybatis的心得写出来,以免以后忘记,算是对这阶段的总结吧环境:mybatis-3.2.7mybatis的懒加载配置什么的我就不详细说了,可以到我的github地址,看我的mybatis-demo,里边有详细的例子我在这里画了一个图,简单的描述一下懒加载的流程,(画的不好。。。)画的不好,,,可能大家看不懂,我来简单的给大家说一下流程,其实
mingtian625
·
2020-07-02 12:07
mybatis
jdk
SpringBoot自动化配置
mybatis源码
分析
上一篇文章,讲到源码的分析,这次来分析mybatis与spring进行集成的源码。Spring骨架接口定义spring里的一些基本概念,要做一个简单的介绍,否则深入到spring与mybatis集成的源码是比较难理解。Spring的类图轮廓,其中BeanFactory是容器的最抽象接口,下面一些接口扩展了接口抽象,继承的层次越多,一般接口的能力就越强大,设计这样的层次接口,但是真正实现类会聚合在几
micro_hz
·
2020-07-02 12:22
编程语言
源码分析
Java学习路线目录索引(持续更新中)
后续会将下面源码及资料发布到github,欢迎star1、
MyBatis源码
及资料:https://github.com/coderZYGui/MyBatis-Study2、Sping源码及资料:https
White Camel
·
2020-07-02 11:00
JavaWeb
Java数据库
SSM主流框架
Java工具
SpringBoot
精通
MyBatis源码
,有多吃香?
在Java相关岗位面试中,精通MyBatis真的非常吃香!它专注于SQL自身,是一个足够灵活的DAO层ORM解决方案,而DAO层是每个后端程序员都绕不过去的一个话题。搞技术的人肯定知道,我们去动态的拼接SQL语句是一件非常麻烦的事情,当一个内容处理起来非常繁琐,我们一定会寻求更加简洁的解决方案。MyBatis框架便由此而生,它对动态SQL提供了非常棒的支持,可以通过配置决定SQL的映射规则,对于一
Hollis在csdn
·
2020-07-02 02:09
mybatis源码
分析
简介在日常开发中我们经常使用到mybatis,所以对于它我们有必要多多的深入了解一波,只有真的了解认识了它,我们才能更好的使用它。闲话不说,先看看总的图样吧!总图预览看完总图,我们再来分别看看每一部分都有什么值得注意的。mybatis简介这个部分简单的介绍了什么是mybatis、为什么要使用mybatis一级要怎么使用mybatis。对于为什么要使用mybatis,说白了就是mybatis比其他的
醉耕
·
2020-07-01 12:14
mybatis学习
Mybatis Plugin 插件(拦截器)原理分析
MybatisPlugin插件(拦截器)原理分析引言最近在看
mybatis源码
,看到了mybatisplugin部分,其实就是利用JDK动态代理和责任链设计模式的综合运用。
杨文杰
·
2020-07-01 12:47
[疫情期间复习]
mybatis源码
分析系列(一) 准备工作
新冠时期互联网公司倒闭,降薪,无薪休假等信息铺天盖地。只会crud的日子让人烦躁与不安疫,随时都将面临失业。大环境再次变好时注定是大航海时代(海贼王看多了)。如何才能在众多人中脱颖而出?读过源码是我们傲娇的资本。为大航海时代准备着,加油吧少年。看源码之前灵魂的拷问:1.mybatis如何加载配置文件?2.mybatis执行sql的工厂如何创建有几种?3.mybatis如何获取mapper?4.my
java自修之路
·
2020-07-01 03:24
java
mybatis
源码分析
为什么大家更愿意使用MyBatis,读完源码我知道了…
最近有朋友在忙着面试,刚开始一路过关斩将,结果最后他和我说,面试官问了他下面这几个和
Mybatis源码
相关的问题:你确定你真正了解ORM底层原理?Mybatis缓存的实现和使用你清楚吗?
Hollis在csdn
·
2020-07-01 02:53
mybatis篇(二):mybatis主流程源码解析
文章目录mybatismybatis的基本使用SqlSessionFactory创建源码分析SqlSession构建源码分析getMapper源码分析mapper执行方法过程源码分析
mybatis源码
分析大部分说明直接注释在代码当中
林伟杰
·
2020-07-01 00:01
mybatis
Mybatis源码
解读(三)--缓存模块(装饰器模式)
Mybatis的缓存模块位于org.apache.ibatis.cache。Mybatis的缓存是基于Map实现的,从缓存里读写数据是缓存模块的核心功能。Mybatis的缓存还有很多额外的附加功能,如防止缓存击穿,设置缓存清除策略,日志功能等。这些附加功能可以以任意方式的组合附加到核心功能之上,而Mybatis采取的就是装饰器模式。装饰器模式装饰器模式(DecoratorPattern)允许向一个
lwtxzwt
·
2020-06-30 20:14
Mybatis源码
Mybatis源码
解读(四)--数据源模块(工厂模式)
Mybatis的数据源模块位于org.apache.ibatis.datasource。常见的数据源组件都实现了javax.sql.DataSource接口。在Mybatis内不但集成第三方的数据源组件,自身也提供了数据源的实现。而一般情况下数据源初始化较复杂,参数较多,因此这里采用了工厂模式。工厂模式工厂模式(FactoryPattern)属于创建者模式,它提供了一种创建对象的最佳方式。定义了一
lwtxzwt
·
2020-06-30 20:14
Mybatis源码
java
mybatis
Mybatis源码
解读(二)--反射模块
Mybatis反射模块的代码在org.apache.ibatis.reflection。Mybatis的反射十分强大,对jdk的反射进行了很好的封装,完全可以作为一个独立的工具类在其他项目中使用。核心类解读MetaObject:封装了对象的元信息,包装了Mybatis中五个核心的反射类。也是提供给外部使用的反射工具类,通过它可以读取或修改对象的属性。publicclassMetaObject{//
lwtxzwt
·
2020-06-30 20:43
Mybatis源码
自己实现一个 MyBatis 框架
目录前言JDBC
MyBatis源码
分析前置知识原理分析自己实现一个MyBatis框架前言#MyBatis是一个非常优秀的持久层应用框架,目前几乎已经一统天下。
民国周先生
·
2020-06-30 16:36
享学课堂高级架构
面试专题:链接:https://pan.baidu.com/s/18WWyeghmG37HtqyRdV47Vw提取码:j7k9Java高级课程大纲(VIP)一、并发编程专题二、spring源码解读专题三、
MyBatis
雷子的窝儿
·
2020-06-30 09:45
Mybatis 中经典的 9 种设计模式
Mybatis源码
中使用了大量的设计模式,阅读源码并观察设计模式在其中的应用,能够更深入的理解设计模式。
yamaxifeng_132
·
2020-06-30 05:22
MyBatis
mybatis源码
阅读:mybatis3
最近在网上看了mybatis的源码直播,记录、复习一下当时的内容!!阅读源码需要从三个方向来剖析:1.宏观:分析这个框架具备哪些功能2.微观:阅读源码3.图解:根据源码画出UML图阅读源码的方式:1.跟着代码debug进入源码2.带着问题来看源码前期准备1.引入包2.准备配置文件3.配置解析demo4.业务查询demo========================================
xiaofather
·
2020-06-30 00:57
myBatis
mybatis源码
配置文件解析之五:解析mappers标签(解析class属性)
在上篇文章中分析了mybatis解析mapper标签中的resource、url属性的过程,《
mybatis源码
配置文件解析之五:解析mappers标签(解析XML映射文件)》。
迷茫中守候
·
2020-06-29 16:00
上一页
18
19
20
21
22
23
24
25
下一页
按字母分类:
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
其他