MyBatis源码解析【2】构建项目

时间:2022-07-22 17:20:35

有了之前的准备,今天就要开始构建学习使用的项目了。废话不多说。开始吧。

 

首先我用IDEA构建了一个空的maven项目,然后加入了Mybatis的依赖。

<dependencies>
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.4.4</version>
</dependency>
</dependencies>

需要说明的是这个3.4.4的包虽然是官方提供的,但是一些国内的镜像仓库可能没有,需要多找找。然后需要进行设置才能自动的加载依赖和源码,在IDEA中设置如下

MyBatis源码解析【2】构建项目

这些设置完成之后,需要用的东西基本都已经有了。

 
 

MyBatis的基本构成

以前,我们都是直接去使用MyBatis,直接拿它配置一下,然后连接一下数据库,然后查个数据,回来就好了。

但是这次我们需要深入的去了解,在构建项目时就要顺便理解它的基本构成,为以后的分析打下基础。

核心组件:

1、SqlSessionFactoryBuilder   按照字面来翻译就是,结构化查询语言会话工厂建造者。

顾名思义它是一个工厂的建造者,这个工厂的名字呢就是sql会话,主要的功能当然是建造工厂啦。

2、SqlSessionFactory  这就是那个工厂咯

那么工厂的主要功能自然是产生产品,那么这个工厂生产的就是名叫:SqlSession的产品。

3、SqlSession  这个就是那个产品

这个产品就是我们操作的关键了,我们一般呢,就只能告诉工厂干什么,怎么干,最后我们操作的呢就是这个产品了。

他的功能是:执行SQL语句并返回相应的结果。

4、SqlMapper  一个MyBatis的一个新产品,可以由上面那个SqlSession获取。以XML文件的形式存在。

 

以上就是MyBatis的基本构成,核心组件,以及这些组件之间的关系,后面我们会用到。

 

构建最原始的MyBatis

下面将构建一个最原始的,至带有一个查询的,整一个过程的Demo(之前用在项目里面全都是带有Spring的项目,所以根本就没有见过最原始的MyBatis的看下去)

我根据官网的入门来一步步配置

1、先是使用xml构建我们的工厂

2、构建我们的mapper

3、构建我们的产品,也就是会话sqlsession

4、使用我们的会话去查询

下面只是随便截一下图,具体步骤都是按照官网来走的。

MyBatis源码解析【2】构建项目

MyBatis源码解析【2】构建项目

MyBatis源码解析【2】构建项目

MyBatis源码解析【2】构建项目

MyBatis源码解析【2】构建项目

MyBatis源码解析【2】构建项目

需要注意的是,因为需要连接mysql,所以需要导入连接mysql的依赖

<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.18</version>
</dependency>
到此为止一个最基本的最简单的Demo已经完成了。

 
 

总结

经过最基本的构建,我已经基本明确了这几个核心组件究竟是干什么用的了。

相信你也对这几个组件已经不陌生了,那么接下来我们将慢慢分析这个那么简单的例子中,究竟藏了多少秘密。

这里提出几个问题需要仔细思考。后面研究时需要用到。

1、工厂是干嘛的?

2、工厂建立一个够不够?在多线程下需要创建多个吗?

3、工厂是否每次执行一次sql就需要生产一个产品?

4、为什么要使用工厂这样的设计?

5、为什么mapper的只有一个接口,没有实现也可以用。

6、最后返回的结果和实体间的映射是如何完成的?

 

这些问题都会在后面的研究中一一进行解释