
Mybatis源码分析
文章平均质量分 72
主要用于记录个人在学习源码过程中遇到的问题
紫焱luis
养得根深,方能叶茂!
展开
-
Mybatis架构简介
Mybatis与ORM对象关系映射(即Object Relational Mapping,简称ORM),主要用于关系型数据库和实体之间的映射,主要为了解决对象与关系数据库存在的互不匹配的现象,ORM通过使用描述对象和数据库之间映射的元数据,将程序中的对象自动持久化到关系数据库中。Java典型的ORM中间件有:Hibernate,Mybatis。ORM是Object与Relation之间映射,包...原创 2018-12-07 21:10:15 · 372 阅读 · 0 评论 -
Mybatis之SessionFactory原理
文章目录Mybatis初始化的基本过程SqlSessionFactory的创建SqlSession原理Configuration介绍Mybatis生命周期Mybatis在使用前需进行初始化,下面就针对Mybatis的初始化过程进行介绍。Mybatis的初始化过程有两种:基于XML和基于Java API两种方式,下面就针对基于XML的方式进行展开。Mybatis初始化的基本过程Mybatis的...原创 2018-12-07 21:12:53 · 1450 阅读 · 0 评论 -
SqlSession对象之Executor
Executor是Mybatis的一个核心接口,每一个SqlSession对象都会拥有一个Executor(执行器对象);这个执行对象负责[增删改查]的具体操作,我们可以简单的将它理解为JDBC中Statement的封装版。它的代码如下:public interface Executor { ResultHandler NO_RESULT_HANDLER = null; int upda...原创 2018-12-07 21:35:50 · 869 阅读 · 0 评论 -
SqlSession对象之StatementHandler
文章目录StatementHandler介绍RoutingStatementHandler类BaseStatementHandler抽象类StatementHandler接口方法介绍prepare方法parameterize方法query方法update方法StatementHandler对象创建上一篇讲了SqlSession对象中的Executor,接下来将对SqlSession的另一个对象S...原创 2018-12-07 21:41:25 · 589 阅读 · 0 评论 -
SqlSession对象之ParameterHandler
上一篇讲了StatementHandler,其中有ParameterHandler(参数处理器)是在StatementHandler被创建时被创建的。下面对ParameterHandler进行说明。其代码如下:public interface ParameterHandler { Object getParameterObject(); void setParameters(Prepar...原创 2018-12-09 00:29:44 · 195 阅读 · 0 评论 -
SqlSession对象之ResultSetHandler
ResultSetHandler是Mybatis中的另一重要接口,它的代码如下所示:public interface ResultSetHandler { <E> List<E> handleResultSets(Statement stmt) throws SQLException; <E> Cursor<E> handleCurso...原创 2018-12-09 00:37:22 · 826 阅读 · 0 评论 -
Mybatis插件开发
前面几篇文章介绍了Mybtis中四个重要的对象,其中提到它们都是在Configuration中被创建的,我们一起看一下创建四大对象的方法,代码如下所示:public ParameterHandler newParameterHandler(MappedStatement mappedStatement, Object parameterObject, BoundSql boundSql) { ...原创 2018-12-09 10:31:00 · 486 阅读 · 0 评论 -
Mybatis中的缓存
文章目录一级缓存二级缓存缓存相关属性开启/禁用二级缓存useCache属性刷新缓存clearCache()方法Mybatis提供缓存查询功能,用于减轻数据库压力,提升数据查询能力。Mybatis中定义了两级缓存:包括一级缓存与二级缓存。示意图如下所示:一级缓存一级缓存的特点:每一个SqlSession都有一个一级缓存,且它们的缓存数据区域之间互不影响。一级缓存是默认开启的,开发人员...原创 2018-12-10 21:34:47 · 203 阅读 · 0 评论 -
Mybatis事务管理
文章目录1、Mybatis事务1.1、事务管理方式1.2、事务配置方式2、事务隔离级别3、事务工厂1、Mybatis事务1.1、事务管理方式Mybatis中的事务管理方式有两种:1、JDBC的事务管理机制,即使用JDBC事务管理机制进行事务管理2、MANAGED的事务管理机制,Mybatis没有实现对事务的管理,而是通过容器来实现对事务的管理其中,Mybatis提供了事务的接口:Tra...原创 2018-12-21 22:54:59 · 886 阅读 · 0 评论