ORM - MyBatis实现自定义MyBatis插件详解
ORM - MyBatis实现自定义MyBatis插件详解 "MyBatis的一个重要的特点就是插件机制,使得MyBatis的具备较强的扩展性,我们可以根据MyBatis的插件机制实现自己的个性化业务需求。" 1. 初识插件 我们在执行查询的时候,如果sql没有加上分页条件,数据量过大的话会造成内存溢出,因此我们可以通过MyBatis提供的插件机制来拦截sq

2022年10月20日
大约 8 分钟
ORM - MyBatis事务管理机制详解
ORM - MyBatis事务管理机制详解 "事务这个词我们多次遇到,在Executor执行器里面,在SqlSession里面,在二级缓存里面。和事务打交道避免不了事务的管理,那么MyBatis是如何进行事务管理的,这篇文章将带领大家一解疑惑。" 初识事务 数据库事务的定义就是将多个执行单元看作一个整体,要么全部执行成功,要么执行失败。事务具有ACID属性,

2022年10月20日
大约 5 分钟
ORM - MyBatis拦截器原理分析
ORM - MyBatis拦截器原理分析 MyBatis拦截器介绍 "MyBatis提供了一种插件(plugin)的功能,虽然叫做插件,但其实这是拦截器功能。那么拦截器拦截MyBatis中的哪些内容呢?" 我们进入官网看一看:http:\//mybatis.github.io/mybatis-3/zh/configuration.html#plugins M

2022年8月1日
大约 7 分钟
ORM - MyBatis一级缓存实现机制详解
ORM - MyBatis一级缓存实现机制详解 一级缓存概念 "Mybatis对缓存提供支持,但是在没有配置的默认情况下,它只开启一级缓存,一级缓存只是相对于同一个SqlSession而言。所以在参数和SQL完全一样的情况下,我们使用同一个SqlSession对象调用一个Mapper方法,往往只执行一次SQL,因为使用SelSession第一次查询后,MyB

2022年8月1日
大约 6 分钟
ORM - MyBatis 二级缓存实现机制详解
ORM - MyBatis 二级缓存实现机制详解 前置准备 既然要看MyBatis源码,当然是把源码拉取下来debug一步一步看才方便呢,这里已经拉取下来,并准备好例子了。 从上诉例子来看,我们观察到首先是解析配置文件,再获取SqlSession,获取到Sqlsession之后在进行各种的CRUD操作,我们先来看下SqlSession是怎么获取的。 SqlS

2022年8月1日
大约 14 分钟
ORM - MyBatis Mapper映射文件配置详解
ORM - MyBatis Mapper映射文件配置详解 一、常用属性标签 1、namespace的作用 "在MyBatis中,Mapper中的namespace用于绑定Dao接口的,即面向接口编程。 namespace属性的值要和对应的Mapper接口的全限定名保持一致。" namespace的好处在于当使用了namespace之后就可以不用写接口实现类,

2022年8月1日
大约 14 分钟
ORM - MyBatis SqlSession执行流程详解
ORM - MyBatis SqlSession执行流程详解 "前面的章节主要讲mybatis如何解析配置文件,这些都是一次性的初始化过程。从本章开始讲解动态的过程,它们跟应用程序对mybatis的调用密切相关。本章先从sqlsession开始。" 1、SqlSession "通过前面的章节对于mybatis 的介绍及使用,大家都能体会到SqlSession

2022年8月1日
大约 15 分钟