Mybatis源码阅读-准备环境搭建
不知道大家有没有感觉到,当你五年工作经验的时候其实并没有比一年经验的同学更加资深,停留在应用阶段,沉浸在迭代业务代码流水中,工作内容就是接口的封装、调用,框架的API调用...想改变自己什么时候都不晚,do now,众多框架中Mybatis框架代码轻量,设计精巧很适合作为你的第一份源码,接下来我会从最开始的本地环境搭建,到源码分析、Debug,总结等阶段,全流程的来解读MyBatis,一起进步吧。
作为系列的第一篇,我们先不考虑设计、原理,先在本地把Mybatis环境搭建起来,找找感觉,全篇文章围绕以下几个部分来分解:
1.下载Mybatis源码项目,用来我们做Debug,给源码加注释。
2.搭建本地测试项目,作为我们了解源码的入口,通过例子进入源码。
3.跑通一个最简单的查询例子,给源码加上自己的第一行注释。
下载Mybatis源码项目:
1). Mybatis-GitHub地址:https://github.com/mybatis/mybatis-3,选择一个版本进行下载,以3.4.6为例:
两种方式,可以使用 git clone https://github.com/mybatis/mybatis-3.git,也可以直接下载ZIP包然后倒入编辑器,项目现在完成后倒入IDEA等编译器,然后配置maven,maven中添加阿里云仓库,如图:
打开项目的pom文件,发现mybatis依赖mybatis-parent,我们再去github下载mybatis-parent项目,版本为图中的29版本:
地址:https://github.com/mybatis/parent/tree/mybatis-parent-29
接下来将下载好的parent项目,倒入到和myabtis同一个工程里,如图:
注释掉mybatis项目中pom文件里的pdf,如图:
修改mybatis、parent项目中的version,如图:
分别maven clean install,parent、mybatis项目,如图:
搭建本地测试项目:
接下来创建测试项目,如图:
写一个查询学生数据例子,创建或修改以下文件,如图:
修改pom文件,加入以下:
<properties>
<junit.version>4.12</junit.version>
<mybatis.version>3.2.8</mybatis.version>
<mysql.version>5.1.32</mysql.version>
<druid.version>1.0.9</druid.version>
</properties>
<dependencies>
<!-- log4j -->
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.17</version>
</dependency>
<!-- Mybatis -->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>${mybatis.version}</version>
</dependency>
<!-- MySql -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>${mysql.version}</version>
</dependency>
<!-- 连接池 -->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid</artifactId>
<version>${druid.version}</version>
</dependency>
<!-- Junit -->
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>${junit.version}</version>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<!-- 加载配置文件 -->
<resources>
<resource>
<directory>src/main/java</directory>
<includes>
<include>**/*.xml</include>
</includes>
</resource>
</resources>
</build>
创建Student类:
创建StudentMapper接口:
创建mybatis-config.xml:
创建StudentMapper.xml:
创建一张student表:
是不是很激动,查询出来了,但是我们的任务才刚刚开始,因为我们用的不是我们下载的mybatis包,现在我们需要进行替换:
别忘了,要用jdk8或以上版本编译项目,我在启动的时候报了一个错:
需要加入pom
<dependency>
<groupId>org.javassist</groupId>
<artifactId>javassist</artifactId>
<version>3.26.0-GA</version>
</dependency>
测试一下,ok了!使用的是我们自己下载的jar
最后一步,开始debug源码,并添加一条注释,我们还需要做一件事关联项目(有的需要有的不需要)
到此,我们成功的使用自己的mybatis.jar,并且可以添加自己的注释,准备工作已经做好了。
- 假如黑客攻击您的互联网汽车会怎么样?
- 享学课堂谈-Python初学者的设计模式入门
- 本体网络Ontology Zero入选国家工信部区块链开源项目计划
- 完全无人驾驶将首先在中国大城出现
- 榴莲售出的三拼域名ancaiyun.com 已建站
- 微信提现免费!申请微信免费提现的教程
- 程序员也是天文学家?利用机器学习寻找行星
- python及numpy,pandas易混淆的点
- 也许 vue+css3 做交互特效更简单
- 2017年你不可不知的十大黑科技!涨见识!
- 土豪!网络营销”英文域名Emarketing.com交易
- 前端学习自学笔记:day06
- 十大最蠢密码公布 果然123456是占榜首的最容易记的一个
- 互联网到区块链必然发展背景
- java教程
- Java快速入门
- Java 开发环境配置
- Java基本语法
- Java 对象和类
- Java 基本数据类型
- Java 变量类型
- Java 修饰符
- Java 运算符
- Java 循环结构
- Java 分支结构
- Java Number类
- Java Character类
- Java String类
- Java StringBuffer和StringBuilder类
- Java 数组
- Java 日期时间
- Java 正则表达式
- Java 方法
- Java 流(Stream)、文件(File)和IO
- Java 异常处理
- Java 继承
- Java 重写(Override)与重载(Overload)
- Java 多态
- Java 抽象类
- Java 封装
- Java 接口
- Java 包(package)
- Java 数据结构
- Java 集合框架
- Java 泛型
- Java 序列化
- Java 网络编程
- Java 发送邮件
- Java 多线程编程
- Java Applet基础
- Java 文档注释
- Ubuntu Server下无线网卡的配置详解
- Linux中修改mysql默认编码的方法步骤
- ubuntu16.04搭建nfs服务的方法
- Ubuntu16.04搭建php5.6Web服务器环境
- Linux上通过SSH挂载远程文件系统方法详解
- Linux上创建、列出、删除Docker容器方法总结
- Centos 7.4服务器时间同步配置方法【基于NTP服务】
- PowerBI 通用万能日历模板,想干嘛就干嘛
- Linux持续集成自动化安装Maven的方法
- 在CentOS上安装搭建PHP+Apache+Mysql的服务器环境
- Centos7.4服务器安装apache及安装过程出现的问题解决方法
- ubuntu系统修改时区和时间的方法
- CentOS7 LNMP+phpmyadmin环境搭建 第一篇虚拟机及centos7安装
- flutter 输入框组件TextField的实现代码
- Mac通过不同终端SSH连接远程服务器的讲解