什么是MyBatis
MyBatis 本是apache的一个开源项目iBatis, 2010年这个项目由apache software foundation 迁移到了google code,并且改名为MyBatis。是一个基于Java的持久层框架
为什么我们要用Mybatis?
无论是Mybatis、Hibernate都是ORM的一种实现框架,都是对JDBC的一种封装!
Hibernate是一个比较老旧的框架,用过它的同学都知道,只要你会用,用起来十分舒服...啥sql代码都不用写...但是呢,它也是有的缺点:处理复杂业务时,灵活度差, 复杂的HQL难写难理解,例如多表查询的HQL语句
而JDBC很容易理解,就那么几个固定的步骤,就是开发起来太麻烦了,因为什么都要我们自己干..
而SpringDAO其实就是JDBC的一层封装,就类似于dbutils一样,没有特别出彩的地方....
我们可以认为,Mybatis就是jdbc和Hibernate之间的一个平衡点...毕竟现在业界都是用这个框架,我们也不能不学呀!
有的朋友可能会说,Hibernate也可以直接写SQL啊....
我想说:直接用SQL,mybatis它不香么?不用HQL,还用hibernate干嘛呢?
我发现在很多博客或者百度上都没有系统详细的笔记总结,零零散散,直到今天终于看到有人把MyBatis从入门到源码解析总结的如此系统!在实际工作中遇到过MyBatis 一些诡异的问题,如:关联查询时结果集为什么和预想的不一致?如果你在面试过程中遇到过“请你谈谈#和$的区别”,如果你想自己实现一套 ORM 框架而没有好的想法时,还有如果你只是想简单的通过阅读 MyBatis 源码来提升自己的技术水平【+jcc4261获取】,我相信这份总结对你来说肯定会很有帮助!
目录展示
第1章:MyBatis入门
-
什么是MyBatis
-
为什么要使用MyBatis
-
如何使用MyBatis
-
本章小结
第2章:配置文件解析过程
-
配置文件解析过程分析
-
本章小结
第3章:映射文件解析过程
-
映射文件解析解析入口
-
解析映射文件
-
Mapper接口绑定过程分析
-
处理未完成解析的节点
-
本章小结
第4章:SQL执行流程
-
SQL执行入口
-
查询语句的执行过程
-
更新语句的执行过程
-
SQL执行过程总结
-
本章小结
第5章:内置数据源
-
内置数据源初始化过程
-
UnpooledDataSource
-
PooledDataSource
-
本章小结
第6章:缓存机制
-
缓存类介绍
-
CacheKey
-
一级缓存
-
二级缓存
-
本章小结
第7章:插件机制
-
插件机制原理
-
实现一个分页插件
-
本章小结