第一个MyBatis程序(上)

简介: 第一个MyBatis程序(上)

一、新建项目

首先我们打开IDEA,新建一个SpringMVC项目。

7df76e9002984b93b75472a17058aa3b.png 项目创建后,接下来和我们之前对springmvc项目的操作是一样的。


a26987de8e144d708b274c5232652947.png

如下图所示:

a3ddef31cdf3458c86d190325b46e238.png

为啥会报错呢?

当然报错呀!你得告诉程序要连哪个数据库吧?

二、设置数据库和MyBatis的配置

🍑配置数据库的连接信息

3c5c545abd2c44a7857ea2c7d2f29e50.png

这里的很多内容是固定的

# 数据库连接配置
Spring:
  datasource:
    url: jdbc:mysql://localhost:3306/你要连接的数据库名?characterEncoding=utf8&useSSL=false
    username: 用户名
    password: 自己的密码
    driver-class-name: com.mysql.cj.jdbc.Driver #只要你数据库用的是mysql这个是固定的

🍑配置MyBatis XML存放位置和命名规则

238d0ec0a72f4dc6b0c09bd86f56212b.png

# 配置 mybatis xml 的⽂件路径,在 resources/mapper 创建所有表的 xml ⽂件
mybatis:
  mapper-locations: classpath:mapper/**Mapper.xml 
#注意这里的mapper名字是可以你自己进行设定的,但一定要和你的项目路径对应起来

三、MyBatis实现查询操作

在用MyBatis进行增删改查之前,首先我们要明白MyBatis的组成,MyBatis执行流程——怎样写程序才符合MyBatis的要求。


🍎MyBatis的组成

先来回顾一下我们软件的分层


39093c6c9f5c47f9ae782b82c765f2c6.png首先我们要明白

MyBatis 的 操作模式,包含两个部分:

  1. Interface(方法定义)
  2. xxx.xml


注意!这里是接口,不是类。

这个interface 中 会加一个注解,它是来自于mybatis里面的注解 Mapper。

加了这个注解之后,表示我们当前的这个 mybatis 类 所的事情,就是 实现 对象的映射。

这个时候,帮我们的方法名字 定义到 interface 里面。

我们 interface 里面的方法,是不能有实现的,是一个抽象方法。


思考一下:

假设,我们要根据用户ID 去查询一个用户信息。

那我们定义一个方法名有什么用?又没有具体实现,怎么可能会实现查询功能??

答案显而易见是不行的!!!

'这个时候,我们就需要另一个东西:xml 文件

mybatis 有点奇怪,感觉就像是 “怕脑门” 想出来的方法 。

就是 要想操作数据库,必须得有两个文件。

第一个,它是Java中的 一个普通接口,在接口中,定义方法名称。

定义方法名称之后,就该实现方法了。

但是接口中方法不能有实体,需要映射到对应的 xml 文件中来帮他完成上述工作。

当然,在xml文件中,也需要表明它是那个方法的映射。

这就是第二个文件 xml。


根据我们前面讲的映射:就是 把业务代码 转换成 SQL 语句。

也就是说我们 定义在接口中的方法,是为了声明该方法 对数据 进行 何种操作。

具体的实现 已经通过某种映射关系,映射到 xml 文件中,

我们需要在 xml 文件中,编写 对应功能的 SQL 语句,就可以了。


有的人可能会疑问:

我们可不可以将 SQL 语句 写在代码中,就像 jdbc 编程 一样。

答案:可以,但是!SQL 只能是 String 类型的,如果SQL写错,它是不会报错的。

这就很容易翻车。

所以,mybatis 的设计师 思考一会,这样的话要不直接把 SQL 写在 xml 里面?

于是一拍大腿,就这么决定了。

在xml里面,只需要配置 我们要是实现的 interface 是谁,我要实现的 SQL 是谁。

OK ,这样一配置就完了。

这两个合在一起,最终生成 mybatis 中能执行的SQL。

通过这个SQL语句,去操作数据库。

将 操作数据库得到的结果,返回给 服务层。

服务层,再返回给 controller(控制层)。

控制层,再把结果交给用户。

这样 就完成了 一次交互。

所以,我们讲 mybatis 的 操作模式,就是在讲下图中的两个文件。


0d6a52f6be5b47de8c55c8c0aa6f3ca0.png

小结: 

ec7271eb39724a128d34222949121aeb.png

理论和思想了解完了,接下来就是实战了。

2f86cbd163054fcabf2be9dc031c75fe.png

首先根据我们数据库的表,在我们的程序中创建想对应的实体类——我们的MyBatis是ORM框架,我们的程序对象与关系数据库数据之间有响应的映射关系


一个数据库中的数据表对应我们程序中的一个实体类

数据表中的一行数据对应该实体类的一个实例化对象

该数据表中的各个属性对应该实体类的成员变量(属性)


387a6827c46441889ba6d6083b8e8c7e.png

🍎使用MyBatis实现查询功能


42addd99d0f54322be33120fdacafae7.png

好了,到现在为止,MyBatis基础的查询操作就算完成了。嘿嘿,其实MyBatis真正意义上的执行就两步:MyBatis接口、该接口所对应的xml文件。只是我们上面花了很多功夫来讲了MyBatis的规范,只要你按照MyBatis人家给的规范要求来操作数据库,其实还是很简单的。


那么查询操作既然写完了,我们怎么知道程序是否查询成功了呢?


相关文章
|
7月前
|
Java 数据库连接 数据库
Mybatis【第一个 Mybatis 程序】
Mybatis【第一个 Mybatis 程序】
|
SQL Java 关系型数据库
手把手搭建mybatis入门程序
手把手搭建mybatis入门程序
|
XML 存储 SQL
如何用IDEA创建第一个Mybatis程序
如何用IDEA创建第一个Mybatis程序
182 0
|
XML Java 关系型数据库
第一个Mybatis程序
第一个Mybatis程序
59 0
|
XML Java 测试技术
第一个MyBatis程序(下)
第一个MyBatis程序(下)
|
Java 关系型数据库 数据库连接
第一个Mybatis程序
思路:搭建环境--》导入Mybatis-->编写代码--》测试!
第一个Mybatis程序
|
SQL XML Java
第一个mybatis程序
第一个mybatis程序
288 0
|
XML Java 数据库连接
Mybatis学习笔记(1)——第一个程序
暑期之前就有打算学习SSM,但是我记得当时再配置一个框架疯狂报错,弄得我很难受,,再加上当时有点其他事情,所以就放了下来。现在很有需求要会ssm,所以就学了一下。感觉框架这东西配置就烦的要死。错一丁点就全错。。下面开始说配置详情。
115 0
Mybatis学习笔记(1)——第一个程序
|
Java 关系型数据库 MySQL
MyBatis第一个入门程序
MyBatis第一个入门程序
MyBatis第一个入门程序