有了之前的准备,今天就要开始构建学习使用的项目了。废话不多说。开始吧。
首先我用IDEA构建了一个空的maven项目,然后加入了Mybatis的依赖。
<dependencies> <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis</artifactId> <version>3.4.4</version> </dependency></dependencies>
需要说明的是这个3.4.4的包虽然是官方提供的,但是一些国内的镜像仓库可能没有,需要多找找。然后需要进行设置才能自动的加载依赖和源码,在IDEA中设置如下
这些设置完成之后,需要用的东西基本都已经有了。
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、使用我们的会话去查询
下面只是随便截一下图,具体步骤都是按照官网来走的。
需要注意的是,因为需要连接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、最后返回的结果和实体间的映射是如何完成的?
这些问题都会在后面的研究中一一进行解释