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

首先我用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、最后返回的结果和实体间的映射是如何完成的?

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

最新文章

  1. 【Java EE 学习 55】【酒店会员管理系统项目总结】
  2. 【bzoj3211】花神游历各国
  3. .Net程序员之Python基础教程学习----字典的使用 [Third Day]
  4. 谈一谈PHP的代码重构
  5. BurpSuite之SQL Injection
  6. LightOJ1044 Palindrome Partitioning(区间DP+线性DP)
  7. [转]让你提升命令行效率的 Bash 快捷键
  8. Git 笔记一 Git简介
  9. React Native学习(七)—— FlatList实现横向滑动列表效果
  10. BZOJ_4197_[Noi2015]寿司晚宴_状态压缩动态规划
  11. MVC 纯Table实现树节点效果+授权
  12. Spring Boot Actuator的端点
  13. #pragma data_seg() 共享数据// MyData段 // 进程 // DLL
  14. 2.6、CDH 搭建Hadoop在安装(安装CDH和其他软件)
  15. TryEnterCriticalSection___Delphi
  16. 用MVC5+EF6+WebApi 做一个考试功能(五) 前端主题
  17. ssm异步上传图片
  18. Java并发编程(五):Java线程安全性中的对象发布和逸出
  19. nginx实时生成缩略图到硬盘上
  20. DotNETCore 学习笔记 依赖注入和多环境

热门文章

  1. 导出CSV,导出excel数字过长显示科学计数法解决方案
  2. wiringPi安装
  3. JVM、GC与HashMap
  4. React复习小结(一)
  5. 《NLTK基础教程》译者序
  6. 一天搞定CSS:边框border--02
  7. 在linux中导入sql文件的方法分享(使用命令行转移mysql数据库)
  8. python不使用第三方变量,交换两个变量的值
  9. Elasticsearch索引和文档操作
  10. 关于HBuilder的一些使用技巧。