mybatis 原理解析
逸少KevinLM
唯有知识可以永恒
展开
-
深入浅出MyBatis-MapperBuilder
上一章节说道,解析mybatis的配置文件的最后一步是解析mapper元素。每个mapper元素对应一个mapper配置文件,这一章节就来讲讲这个mapper配置文件是如何解析的。 Mapper文件里有什么 mapper配置文件是配置sql映射的地方,它看起来就像下面这个样子: [html] view plain copy xml v转载 2017-03-13 15:29:46 · 315 阅读 · 0 评论 -
深入浅出MyBatis-Configuration
Configuration就像是Mybatis的总管,Mybatis的所有配置信息都存放在这里,此外,它还提供了设置这些配置信息的方法。Configuration可以从配置文件里获取属性值,也可以通过程序直接设置。Configuration里可供配置的属性有: 1. properties属性 1) 配置示例 [html] view plain转载 2017-03-13 15:18:15 · 1268 阅读 · 0 评论 -
深入浅出MyBatis-Sqlsession
前面的章节主要讲mybatis如何解析配置文件,这些都是一次性的过程。从本章开始讲解动态的过程,它们跟应用程序对mybatis的调用密切相关。本章先从sqlsession开始。 创建 正如其名,Sqlsession对应着一次数据库会话。由于数据库回话不是永久的,因此Sqlsession的生命周期也不应该是永久的,相反,在你每次访问数据库时都需要创建它(当然并不是说在Sqlsession转载 2017-03-13 15:35:23 · 458 阅读 · 0 评论 -
深入浅出Mybatis-插件原理
Mybatis采用责任链模式,通过动态代理组织多个拦截器(插件),通过这些拦截器可以改变Mybatis的默认行为(诸如SQL重写之类的),由于插件会深入到Mybatis的核心,因此在编写自己的插件前最好了解下它的原理,以便写出安全高效的插件。 代理链的生成 Mybatis支持对Executor、StatementHandler、PameterHandler和ResultSetHandl转载 2017-03-13 15:38:05 · 369 阅读 · 0 评论 -
深入浅出Mybatis-分页
Mybatis的分页功能很弱,它是基于内存的分页(查出所有记录再按偏移量和limit取结果),在大数据量的情况下这样的分页基本上是没有用的。本文基于插件,通过拦截StatementHandler重写sql语句,实现数据库的物理分页。本文适配的mybatis版本是3.2.2。 准备 为什么在StatementHandler拦截 在深入浅出MyBatis-Sqlsession章节介绍转载 2017-03-13 15:40:48 · 331 阅读 · 0 评论 -
深入浅出Mybatis-sql自动生成
本文提供了一种自动生成sql语句的方法,它针对的对象是有主键或唯一索引的单表,提供的操作有增、删、改、查4种。理解本文和本文的提供的代码需要有java注解的知识,因为本文是基于注解生成sql的。本文适配的mybatis版本是3.2.2。 准备 为什么在StatementHandler拦截 在深入浅出MyBatis-Sqlsession章节介绍了一次sqlsession的完整执行过转载 2017-03-13 15:43:35 · 753 阅读 · 0 评论 -
深入浅出Mybatis-与Spring集成
单独使用mybatis是有很多限制的(比如无法实现跨越多个session的事务),而且很多业务系统本来就是使用spring来管理的事务,因此mybatis最好与spring集成起来使用。 前置要求 版本要求 项目 版本 下载地址 说明 mybatis 3.0及以上 http转载 2017-03-13 15:53:50 · 295 阅读 · 0 评论 -
深入浅出Mybatis-改造Cache
为了方便修改BUG,我在github上创建了一个仓库,地址:https://github.com/hupanfeng/hdd。欢迎大家在留言里提交问题,我会尽快修复,并将修复的代码提交至github上。 在前面的文章里,我开发了两个插件:根据注解实现的sql自动生成插件和分页插件。这两个插件在没有开启cache的情况下可以很好的使用,但开启cache后却出现了一些问题,为了解决这转载 2017-03-13 15:48:51 · 332 阅读 · 0 评论