Mybatis源码分析开篇

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/niunai112/article/details/80188635

在分析源码之前,LZ想带大家了解下Mybatis

Mybatis的由来

iBatis 本是apache的一个开源项目iBatis, 2010年这个项目由apache software foundation 迁移到了google code,并且改名为MyBatis 。2013年11月迁移到Github。
iBATIS一词来源于“internet”和“abatis”的组合,是一个基于Java的持久层框架。iBATIS提供的持久层框架包括SQL Maps和Data Access Objects(DAOs)

mybatis究竟是什么

其实Mybatis就是封装了JDBC,让JDBC的操作更加简单,为什么这么说呢?我们来看下面的说明:
一次完整的JDBC操作数据库包括以下步骤
1、 加载数据库驱动
2、 创建并获取数据库链接
3、 创建jdbc statement对象
4、 设置sql语句
5、 设置sql语句中的参数(使用preparedStatement)
6、 通过statement执行sql并获取结果
7、 对sql执行结果进行解析处理
8、 释放资源

Mybatis封装后:
1、我们发现假如每次我们查询数据都要创建数据库链接的话,会大大消耗我们的资源,因为建立链接是一个很耗时的过程,所以Mybatis有连接池来解决这个问题。
2、创建jdbc statement对象,设置sql语句 需要在访问之前操作,若是在代码中以硬编码的形式来实现的话,不利于维护,所以Mybatis有mapper.xml来统一管理,比较直观方便。
3、预编译情况下,要把占位符的地方替换成参数传入,Mybatis自动解析传入的参数替换mapper.xml中设置好的占位符。
4、查询出结果后,用JDBC把结果集映射成对象非常麻烦,所以Mybatis能用resultMap来把结果集映射成对象。

虽然看起来,Mybatis的操作与JDBC完全不一样,但是在底层的操作确实JDBC,所以说,Mybatis是对JDBC的一次封装,让我们开发在对数据库进行操作的时候更加方便。

假如你没用过JDBC和Mybatis的话,你可能不会有所共鸣,Mybatis确实让程序员在访问数据库的时候,少干了不少活,而且我们能很轻松的对sql语句进行维护。

学习源码必备的技能

接下的篇幅,LZ会带各位去学习一下Mybatis的源码,需要一定的基础,个人觉得,需要看懂的话必须要先掌握以下技能:
(1)几个必要的设计模式
1、建造者模式。2、代理模式(重点)。3、工厂模式。4、享元模式。……
(要学习设计模式同学可以看看LZ之前写的文章设计模式学习
(2)会使用Mybatis(后面会穿插着介绍如何使用),最好有一定的开发经验
(3)会使用JDBC(因为底层是JDBC,了解的话,能更好的理解Mybatis到底在干什么)

希望各位看官能在这个系列学到一点东西,理解mybatis设计的妙处。

展开阅读全文

没有更多推荐了,返回首页