至此,关于MySQL数据库的内容已经学习完毕了,包括数据库的设计、数据库的操作、数据库的优化,在学习MySQL的时候都是在图形化界面工具DateGrip当中来操作的,通过图形化界面工具直接在查询控制台当中编写SQL语句来完成数据库中数据的增删改查操作。而我们在以后项目开发当中,并不会每一次都基于图形化界面工具来操作数据库当中的数据,而是通过Java程序来完成数据库的操作,而Java程序来操作数据库现在最主流的技术当属MyBatis。
- 在客户端工具中,编写增删改查的SQL语句,发给MySQL数据库管理系统,由数据库管理系统执行SQL语句并返回执行结果。
- 增删改操作:返回受影响行数
- 查询操作:返回结果集(查询的结果)
我们做为后端程序开发人员,通常会使用Java程序来完成对数据库的操作。Java程序操作数据库,现在主流的方式是:Mybatis。
什么是MyBatis?
-
MyBatis是一款优秀的 持久层 框架,用于简化JDBC的开发。
-
MyBatis本是 Apache的一个开源项目iBatis,2010年这个项目由apache迁移到了google code,并且改名为MyBatis 。2013年11月迁移到Github。
-
官网:mybatis – MyBatis 3 | 简介
在上面我们提到了两个词:一个是持久层,另一个是框架。
-
持久层:指的就是Web开发三层架构当中的数据访问层(dao),是用来操作数据库的。
-
数据访问层(dao)也就持久层,就是与数据库打交道的,也就是说MyBatis框架它就是在dao持久层当中用来操作数据库的。
-
JDBC它是Sum公司提出的JavaEE13项规范之一,是Sum公司提供的用来操作数据库的一套规范。
-
但是如果直接使用底层的JDBC程序来操作数据库会非常的繁琐,所以现在基本上使用的都是主流的MyBatis框架来简化JDBC的开发。
-
框架:是一个半成品软件,是一套可重用的、通用的、软件基础代码模型。在框架的基础上 进行软件开发更加高效、规范、通用、可拓展。
Mybatis课程安排:
-
Mybatis入门:通过一个入门程序,快速感受一下通过Mybatis如何来操作数据库。
-
Mybatis基础增删改查:这个也是使用MyBatis操作数据库的基本功,也是我们项目开发当中使用频次最高的功能。
-
Mybatis动态SQL:MyBatis的高级特性。
基于SpringBoot整合MyBatis的方式来讲解MyBatis,因为在现在的企业开发当中,绝大部分的项目都是基于SpringBoot去构建的。所以我们在项目当中使用MyBatis也是直接使用SpringBoot去整合MyBatis,这也是企业开发当中最为普遍最为主流的一种方式。
接下来,我们就通过一个入门程序,让大家快速感受一下通过Mybatis如何来操作数据库。
一. MyBatis入门
- 快速入门:通过一个入门程序,快速感受一下通过Mybatis如何来操作数据库
- JDBC介绍:MyBatis框架的底层实现 --- JDBC
- 数据库连接池
- lombok
1. 快速入门
导学:掌握MyBatis开发的基本流程
需求:使用Mybatis查询所有用户数据。
MyBatis操作数据库的方式和图形化界面工具操作数据库的方式,底层的逻辑是一样的。
1.1 入门程序分析
以前我们是在图形化客户端工具中编写SQL查询代码,发送给数据库服务器来执行,数据库执行后返回操作结果。
图形化工具会把数据库执行的查询结果,使用表格的形式展现出来
现在使用Mybatis操作数据库,就是在Java程序当中来编写SQL查询代码,然后再将这条SQL语句发送给数据库执行,数据库执行后返回结果给Java程序。
Mybatis会把数据库执行的查询结果,使用实体类封装起来(一行记录对应一个实体类对象),表中的字段最终会自动地封装到对象的属性当中。
MyBatis操作数据库其实就是在Java程序当中编写SQL语句,然后把这个SQL语句发送给数据库执行,此时Java程序需要知道要把这个SQL语句发送给哪一台数据库,因此我们就需要配置数据库的连接信息。
Mybatis操作数据库的步骤:
- 准备工作(创建springboot工程、数据库表user、实体类User)
- 引入Mybatis的相关依赖,配置Mybatis(配置数据库连接信息)
- 编写SQL语句(注解/XML)
配置数据库连接的四项信息:
a. Driver:数据库连接的驱动 指定数据库驱动类的全类名
b. 数据库连接的URL
- localhost之前是协议部分,协议之后的部分指定了当前要连接的是哪一个数据库服务器
- locathost代表的是本机 3306:指的是数据库服务器的端口号
- 在后面再加上一个/ + 数据库的名字,代表我们要连接的是这个数据库服务器当中的哪一个数据库
- 在图形化界面工具当中,为了展示的更加直观,操作的更加方便,将URL当中的主机地址、端口号以及数据库的名字这三个部分又单独的在上面展示出来了, 分别是Host、Port和Database
c. 数据库访问的用户名
- User:用户名
d. 数据库访问的密码
- password:密码
以上就是我们连接数据库时所需要指定的四项信息!
由于MyBatis操作数据库的方式和图形化界面工具操作数据库的方式底层逻辑是一样的,因此在MyBatis操作数据库的时候,我们也是需要配置数据库连接的这四项信息,包括:
- 驱动类的全类名 数据库连接的URL 访问数据库的用户名和密码
这四项信息我们也称之为数据库连接的四要素。
由于我们现在使用的是SpringBoot整合MyBatis,所以这一部分的信息我们就需要配置在SpringBoot默认的配置文件application.properties当中,而properties配置文件的配置形式是Key = value,等号之前是属性名,等号之后是属性值。
在MyBatis当中定义SQL语句有两种方式,一种方式就是基于注解来定义,另外一种方式就是基于XML来定义。
在入门程序阶段,我们直接基于注解的方式来定义SQL语句。
在Mapper接口当中如何来编写SQL语句?
按照MyBatis的规范,我们需要定义一个持久层的接口,并且在接口上加上一个@Mapper注解来标识当前是MyBatis当中的一个持久层的接口,这个接口其实就是三层架构当中的数据访问层也就是dao层的接口,一般称为Mapper接口。然后在Mapper接口当中定义一个方法,上面加上一个注解@Select,来指定当前是一个查询操作,然后在这个注解当中再来指定要执行的SQL语句,最终,我们要想执行这条SQL语句,只需要调用Mapper接口当中的这个list方法就可以,此时,框架就会自动的执行这条SQL语句,并自动的将SQL语句执行的结果封装到方法的返回值当中。
经过上面这三步操作之后,我们就完成了数据的查询操作。
对于上述这三步操作,前两步当中的创建SpringBoot工程,引入MyBatis的相关依赖,配置MyBatis对于一个项目来说,只需要操作一次就可以了。在学习MyBatis的时候,需要重点关注的就是第三步:在Mapper接口当中如何来编写SQL语句。
因为我们现在使用的是MyBatis框架,MyBatis框架已经对数据库的操作进行了很好的封装,所以我们只需要编写少量的Java代码就可以完成数据库的操作。
说明:在MyBatis的开发当中,我们只需要去定义这个Mapper接口就可以了,是不需要定义它的 实现类的,因为程序在运行时框架底层会自动生成这个接口的实现类对象。
location代表的是我们所创建的这个模块放在哪一个磁盘目录下?