前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >mybatis学习|下载并导入mybatis源码到idea

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

作者头像
微笑的小小刀
发布2019-09-03 18:01:39
1.5K0
发布2019-09-03 18:01:39
举报
文章被收录于专栏:java技术大本营

学习背景

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下载,两种方法都是可以的

导入之后,我们可以看到这是一个基于maven的工程,可以用平常导入maven工程的方法去导入

给maven配置阿里云镜像

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

代码语言:javascript
复制
<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,对这个包做了简单的说明

通过目录,我们可以看到,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:做一些类型的映射,声明等等之类的, 为上面的模块提供基础数据

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2019-09-01,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 java技术大本营 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 学习背景
  • 学习工具
  • 用idea拉取源码
  • 给maven配置阿里云镜像
  • 源码目录结构
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档