MyBatis 系列1 -- 初识MyBatis

前言

        在之前总结了Spring系列,包括了最基础的Spring框架,springboot框架,SpringMVC ,以上框架能帮助我们更加便捷的与前端页面进行交互.现在我们遇到了一个问题,就是我们和前端进行交互,我们的数据应该怎么存储和写入呢?在学习Servlet的时候,我们通过JDBC进行连接数据库.主要就是对JDBC的连接操作进行封装,然后获取数据库的连接,进行构造sql语句,每次构造sql语句的时候都要进行获取连接的服务.这样的过程就很繁琐了,接下来我们将迎来一个新的框架--MyBatis框架.这个框架可以取出几乎所有的JDBC代码以及设置参数进行获取结果集.下面就一起来学习一下吧!

MyBatis 系列1 -- 初识MyBatis_第1张图片

目录

前言

1. MyBatis 是什么?

2. 为什么要学习MyBatis?

3. 怎么学MyBatis?

​4. 第一个MyBatis查询

4.1 创建具体的数据库和表 

4.2 添加MyBatis环境支持

4.3 配置连接字符串和MyBatis

4.4 添加业务代码

4.4.1 添加实体类

4.4.2 添加 mapper 接口

4.4.3 添加 UserMapper.xml

4.4.4 添加 Service

4.4.5 添加 Controller

4.4.6 使用postman 测试

5. 结语


 

1. MyBatis 是什么?

         MyBatis 是一种持久层框架,支持自定义 SQL、存储过程 以及 高级映射。MyBatis 可以通过简单的 XML 或注解来配置和映射原始类型、接口.简单的来说简单来说 MyBatis 是更简单完成程序和数据库交互的工具,也就是更简单的操作和读取数据库工具。

2. 为什么要学习MyBatis?

 对于后端开发,程序是由一下两个重要的部分组成的:

MyBatis 系列1 -- 初识MyBatis_第2张图片

而这两个重要的组成部分要通讯,就要依靠数据库连接工具,那数据库连接工具有哪些?就跟前言部分进行讲述的一样我们学的是JDBC.那我们就借此机会进行回顾一下JDBC编程;

  • 1. 创建数据库与连接池DataSource
  • 2. 通过DataSource获取数据库连接Connection
  • 3. 编写执行?占位符的sql语句
  • 4. 通过Connection及sql创建操作命令对象Statement
  • 5. 使用Statement进行替换占位符的值,替换的时候要制定替换数据库字段的类型
  • 6. 使用Statement执行sql语句
  • 7. 查询操作: 返回结果集ResultSet 更新操作:返回更新的数量
  • 8. 处理结果集
  • 9. 释放资源

上述就是JDBC的整个框架的思路. 整个操作非常的繁琐,我们不但要拼接每⼀个参数,而且还要按照模板代码的方式,⼀步步的操作数据库,并且在每次操作完,还要手动关闭连接等,而所有的这些操作步骤都需要在每个方法中重复书写。这时候我们就要学习新的框架MyBatis框架.

3. 怎么学MyBatis?

4. 第一个MyBatis查询

MyBatis 在整个框架中的定位

MyBatis 系列1 -- 初识MyBatis_第3张图片

 MyBatis 也是⼀个 ORM 框架, ORM(Object Relational Mapping),即对象关系映射。在面向对象编程语言中,将关系型数据库中的数据与对象建立起映射关系,进而自动的完成数据与对象
的互相转换:

  • 1. 将输入的数据(即传人对象)+SQL 映射成原生的SQL
  • 2. 将结果集映射为返回对象,即输出对象

MyBatis 系列1 -- 初识MyBatis_第4张图片  

4.1 创建具体的数据库和表 

代码如下 :

-- 创建数据库
drop database if exists mycnblog;
create database mycnblog DEFAULT CHARACTER SET utf8mb4;

-- 使⽤数据数据
use mycnblog;

-- 创建表[⽤户表]
drop table if exists userinfo;
create table userinfo(
    id int primary key auto_increment,
    username varchar(100) not null,
    password varchar(32) not null,
    photo varchar(500) default '',
    createtime datetime,
    updatetime datetime,
    `state` int default 1
) default charset 'utf8mb4';

-- 创建⽂章表
drop table if exists articleinfo;
create table articleinfo(
    id int primary key auto_increment,
    title varchar(100) not null,
    content text not null,
    createtime datetime,
    updatetime datetime,
    uid int not null,
    rcount int not null default 1,
    `state` int default 1
)default charset 'utf8mb4';

-- 创建视频表
drop table if exists videoinfo;
create table videoinfo(
    vid int primary key,
    `title` varchar(250),
    `url` varchar(1000),
    createtime datetime,
    updatetime datetime,
    uid int
)default charset 'utf8mb4';
INSERT INTO `mycnblog`.`userinfo` (`id`, `username`, `password`, `photo`,`createtime`, `updatetime`, `state`) 
VALUES(1, 'admin', 'admin', '', '2021-12-06 17:10:48', '2021-12-06 17:10:48', 1);

-- ⽂章添加测试数据
insert into articleinfo(title,content,uid) values('Java','Java正文',1);
insert into videoinfo(vid,title,url,uid) values(1,'java title','http://www.baidu.com',1);

4.2 添加MyBatis环境支持

添加 MyBatis 框架⽀持分为两种情况:⼀种情况是对自己之前的 Spring 项目进行升级,另⼀种情况是创建⼀个全新的 MyBatis 和 Spring Boot 的项目,下面我们分别来演示这两种情况的具体实现。

1. 可以使用在Maven中央仓库进行查找环境依赖 :分别是MyBatis和MySQL 驱动.两者缺一不可.



    org.mybatis.spring.boot
    mybatis-spring-boot-starter
    2.1.4



    mysql
    mysql-connector-java
    5.1.38
    runtime

2. 使用插件进行生成

MyBatis 系列1 -- 初识MyBatis_第5张图片

安装之后,在pom.xml中右击,点击generate

MyBatis 系列1 -- 初识MyBatis_第6张图片

选择我们的插件 

MyBatis 系列1 -- 初识MyBatis_第7张图片

 MyBatis 系列1 -- 初识MyBatis_第8张图片

 选择依赖

MyBatis 系列1 -- 初识MyBatis_第9张图片

 也可以直接在新建SpringMVC 项目的时候进行添加环境依赖.这里就不用在演示了.可以看之前的系列,然后点击sql栏进行添加mybatis和MySQL就可以了.

4.3 配置连接字符串和MyBatis

在项目的配置文件进行配置,可以使用properties也可以使用yml,这里使用yml为例.(建议大家使用yml格式的配置文件).

spring:
  datasource:
    url: jdbc:mysql://localhost:3306/mycnblog?characterEncoding=utf8&useSSL=false
    username: root
    password: 111111
    driver-class-name: com.mysql.cj.jdbc.Driver

# myBatis  xml保存轮径
mybatis:
  mapper-locations: classpath:mybatis/*Mapper.xml
  configuration: # 配置打印 MyBatis 执行的 SQL
    log-impl: org.apache.ibatis.logging.stdout.StdOutImpl

# 配置打印 MyBatis 执行的 SQL
logging:
  level:
    com:
      example:
        demo: debug

上述代码大家不用记住,放在自己能随时找到的地方就行.

4.4 添加业务代码

下图是后端开发的工程思路

MyBatis 系列1 -- 初识MyBatis_第10张图片 

为什么不直接写成一个,实现具体操作数据库的方法,还要去使用接口加xml进行实现操作数据库?

答案:因为要实现具体的方法就要在方法中使用字符串进行书写sql代码我们不如直接设计一个接口,然后具体的实现将sql交给xml文件,这样看起来更简洁.

这是整个项目的文件目录,我们最好使用下述目录进行构造文件

MyBatis 系列1 -- 初识MyBatis_第11张图片

4.4.1 添加实体类

userinfo

MyBatis 系列1 -- 初识MyBatis_第12张图片

4.4.2 添加 mapper 接口

        这里注意,我们也要将接口进行注入到容器中,随着Spring的启动而启动,就需要添加注解@Mapper,和我们之前学过的五大类注解功能是相同的.

MyBatis 系列1 -- 初识MyBatis_第13张图片

4.4.3 添加 UserMapper.xml

下面是配置MyBatis的xml的模板 




   

在Mapper标签里面添加sql对应xml的标签进行构造操作数据库的sql;

MyBatis 系列1 -- 初识MyBatis_第14张图片

4.4.4 添加 Service

MyBatis 系列1 -- 初识MyBatis_第15张图片

4.4.5 添加 Controller

MyBatis 系列1 -- 初识MyBatis_第16张图片

 以上代码写完,整个 MyBatis 的查询功能就实现完了,接下来使⽤ postman 来测试⼀下。

4.4.6 使用postman 测试

MyBatis 系列1 -- 初识MyBatis_第17张图片

5. 结语

        上述就就是MyBatis的基本原理以及简单的构建与使用,下一个篇章就要对xml的对应的sql标签进行总结以及讲解下单元测试的使用.最后完成增删改查的基本数据库操作.大家持续关注哦!!谢谢❤️❤️❤️❤️ 

MyBatis 系列1 -- 初识MyBatis_第18张图片

你可能感兴趣的:(#,MyBatis,mybatis,mysql)