mybatis学习|下载并导入mybatis源码到idea

Updated on with 613 views

开头说两句

小刀博客: https://www.lixiang.red
小刀公众号: 程序员学习大本营

学习背景

mybatis做为目前国内最为流行的开源orm框架,我们平时在使用时会感受到其带来的诸多便利,但是很少去深入分析,mybatis源码代码量不多,功能丰富,是一个很好的学习样例,本系列小刀就和大家一起来学习mybatis

学习工具

  1. mybatis 文档
    基本上我们能用到的使用方法,包括spring / 非spring的各种用法,同样对于英文不太好的同学,也有中文文档可以选择
    http://www.mybatis.org/mybatis-3/getting-started.html
    http://www.mybatis.org/mybatis-3/zh/index.html (中文)
  2. mybatis源码
    项目在github上开源,都可以公开访问
    https://github.com/mybatis/mybatis-3
  3. idea
    目前java主流开发ide
  4. 小刀的微信群
    一个人学习很辛苦,这里有小伙伴陪你一起学

用idea拉取源码

小刀fork了一份mybatis的源码,同时写补充一些注释进去
https://github.com/weixiaodexiaoxiaodao/mybatis-3
可以选择先下载下来再导入,或者直接用idea下载,两种方法都是可以的
image.png
导入之后,我们可以看到这是一个基于maven的工程,可以用平常导入maven工程的方法去导入
image.png

给maven配置阿里云镜像

打开settings.xml,找到mirrors 节点,然后复制以下代码

<mirror>

	<id>alimaven</id>

	<name>aliyun maven</name>

	<url>http://maven.aliyun.com/nexus/content/groups/public/</url>

	<mirrorOf>central</mirrorOf>

</mirror>

源码目录结构

我们可以看到,mybatis并不是一个多模块项目,和tomcat一样,只有一个模块,而且源码开发人员很友好的在每个包下面,都有一个package-info.java,对这个包做了简单的说明
image.png
通过目录,我们可以看到,mybaits有几下几大模块
annotation: 在这里面可以看到我们常用的注解,如 @Mapper ,以及mybatis的新特性 @Select等等,都是在这个包里面进行声明的
binding: 做Mapper的绑定工作,绑定mapper接口和代理类
builder: 通过xml,注解等构造mybatis的配置
cache: 配置mybatis的缓存
datasource:数据源
executor: 这个是重点组件,执行sql的组件
io: 资源处理模块: mybatis有个自己封装的VFS(virtual File system)文件处理系统
jdbc:叫sql预处理模块,用于java层面书写sql语句
logging:日志模块,可以和不同的日志系统进行集成
mapping: 映射模块,主要是parameterMap , resultMap , 数据库字段和java实体类字段之间
parsing: 解析xml的模块,使用的dom+xpath的方法来解析xml
reflection: 反射模块,同时把反射到的信息缓存到HashMap中
scripting: 脚本模块,用于处理一些自定义的参数拼接等
session: mybatis的重点模块,我们sql语句都是在session内执行的
Transaction: 事务的处理,可以看到是真实是处理是通过connection调用jdbc来处理的
type:做一些类型的映射,声明等等之类的, 为上面的模块提供基础数据

最后说两句

在mybatis的学习过程中,各个模块相互配合,共同完成sql的查询. 大家在学习过程中有什么问题可以随时联系小刀: best396975802


标题:mybatis学习|下载并导入mybatis源码到idea
作者:xiaodaojava
地址:https://www.lixiang.red/articles/2019/08/30/1567178451889.html

Responses