初识Mybatis,并创建第一个Mybatis项目(详细图文教程)

目录

前言

一、Mybatis是什么?

二、Mybatis的优点

三、创建第一个Mybatis项目

配置Mybatis开发环境

创建数据库

添加框架

 配置连接字符串和Mybatis

使用Mybatis操作数据库

测试

前言

Spring 集成了 Mybatis 框架,方便我们更加便捷的使用,但是 Mybatis 也可以单独使用,它和 Spring 没有关系。

一、Mybatis是什么?

Mybatis 是一个持久层框架,它支持自定义SQL、存储过程以及高级映射。可以通过简单的xml 或者注解来配置和映射原始类型接口和Java POJO为数据库中的记录。

  • JavaPOJO : 普通老式java对象
  • 持久层框架就是把是数据保存在硬盘上

简单来说,Mybatis 是简单完成程序和数据库交互的工具,也就是一个数据库工具,让我们更简单的操作和读取数据库。

初识Mybatis,并创建第一个Mybatis项目(详细图文教程)_第1张图片

mybatis主要做了什么?

声明接口 + 实现接口。

声明接口:就是接口用来进行方法的声明。

实现接口:xml或者注释的方式,但是mybatis中的注释比较复杂一点,最开始我们先用xml实现接口的方式。

二、Mybatis的优点

  • Mybatis是最简单的持久层框架,小巧且易学。
  • 底部集成了JDBC,与传统的JDBC项目相比,大大减少了我们的代码量。
  • 提供了xml标签,支持编写动态的SQL语句。
  • 通过提供DAO层,将业务逻辑和数据访问逻辑分离,使系统的设计更清晰,更易维护,更易单元测试。sql和代码的分离,提高了可维护性。
  • Mybatis相当灵活,代买写在xml文件中,大大降低了耦合度,提高了代码复用。
  • 提供了映射标签,支持对象与数据库的ORM关系字段映射。

ORM(Object Relational Mapping),即对象关系映射。在⾯向对象编程语⾔中,将关系型数据库中的数据对象建⽴起映射关系,进⽽⾃动的完成数据与对象的互相转换:

1. 将输⼊数据(即传⼊对象)+SQL 映射成原⽣ SQL

2. 将结果集映射为返回对象,即输出对象

ORM把数据库映射为对象:

  • 数据库表(table)--> 类(class)
  • 记录(record,⾏数据)--> 对象(object)
  • 字段(field) --> 对象的属性(attribute)

⼀般的 ORM 框架,会将数据库模型的每张表都映射为⼀个 Java 类。

三、创建第一个Mybatis项目

Mybatis其实就是一个工具,说是创建第一个Mybatis项目其实不准确,应该是应用Mybatis.

MyBatis 应用只分为两部分:

        配置 MyBatis 开发环境;

        使⽤ MyBatis 模式和语法操作数据库。

配置Mybatis开发环境

创建数据库

我们要使⽤ MyBatis 的⽅式来读取⽤户表中的所有⽤户,那么首先我们需要创建我们的数据库。

-- 创建数据库
drop database if exists mybatis_sql;
create database  mybatis_sql DEFAULT CHARACTER SET utf8mb4;
-- 使⽤数据数据
use  mybatis_sql;
-- 创建表[⽤户表]
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 default now(),
 updatetime datetime default now(),
 `state` int default 1
) default charset 'utf8mb4';


--表中插入数据
INSERT INTO ` mybatis_sql`.`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)
;

以上语句在SQL工具上进行执行,查询表中数据结果如下即插入成功,进行下一步:

初识Mybatis,并创建第一个Mybatis项目(详细图文教程)_第2张图片

添加框架

接下来就是我们的java程序的部分的操作了,要使用Mybatis,就要给我们的项目加上Mybatis框架支持,那么有san种方式。

第一种呢就是创建一个新的项目,创建的时候选中Mybatis框架:创建一个spring项目(这里如果有问题可以看这篇文章:http://t.csdn.cn/8IJTu),在项目创建的时候加上 Mybatis 框架支持:

初识Mybatis,并创建第一个Mybatis项目(详细图文教程)_第3张图片

 第二种就是升级我们的一个原有项目,也就是在我们已有的项目上添加Mybatis框架,那么简单的操作⽅式就是使⽤EditStarters插件:

初识Mybatis,并创建第一个Mybatis项目(详细图文教程)_第4张图片

 插件的使用:在我们的配置文件界面直接右击,选择生成,选择我们刚才安装的插件,进行框架的添加选择。

初识Mybatis,并创建第一个Mybatis项目(详细图文教程)_第5张图片

 初识Mybatis,并创建第一个Mybatis项目(详细图文教程)_第6张图片初识Mybatis,并创建第一个Mybatis项目(详细图文教程)_第7张图片

第三种就是直接引入依赖到 pom 文件中。

        
            org.mybatis.spring.boot
            mybatis-spring-boot-starter
            2.3.1
        

        
            com.mysql
            mysql-connector-j
            runtime
        

        
            org.mybatis.spring.boot
            mybatis-spring-boot-starter-test
            2.3.1
            test
        

 配置连接字符串和Mybatis

 配置连接字符串:在application.yml文件中写入一下代码:

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

url改为自己用的:端口号和数据库名

初识Mybatis,并创建第一个Mybatis项目(详细图文教程)_第8张图片

Mybatis由两部分,一个是接口一个是实现,实现由两种方法:xml或者注释,注释比xml复

杂,在这里我们采用xml的方式实现,mybatis是基于spring实现的,那么spring要应用mybatis就要进行扫描我们的实现,我们要配置路径告诉spring要扫描哪里。

配置mybatis xml的文件路径,在刚才配置数据库的文件直接配置。

#配置 mybatis xml 的文件路径,在resources/mapper下创建所有表对的 xml 文件
mybatis:
    mapper-locations: classpath:mapper/**Mapper.xml

我们扫描路径为上述,那么要在对应目录下(classpath指的是resources)建一个文件夹mapper,里边的文件明明格式都为**Mapper.xml.

初识Mybatis,并创建第一个Mybatis项目(详细图文教程)_第9张图片

那么目前为止,Mybatis开发环境配置完成,接下来我们使用Mybatis模式和语法操作数据库。

使用Mybatis操作数据库

刚才开发环境的配置中,我们配置了xml文件进行实现,实现什么呢?

     就是实现我们的java接口,那么接口是是干什么呢?接口是用来实现方法的声明。那么现在我们要创建实现的接口。(建议:接口统一放在mapper包下,和配置中的mapper对应)

  创建mapper接口:@Mapper是Mybatis的注解

import com.example.springmybatisdemo.model.User;
import org.apache.ibatis.annotations.Mapper;
import java.util.List;

@Mapper
public interface UserMapper {
    List userAll();
}

接口要查询我们数据库的所有用户的信息,那么首先我们要有对象,那么我们现在创建一个对象(也就是类)。

创建user类,里边的属性和数据库中表的字段相对应。

import lombok.Data;

import java.util.Date;
@Data
public class User {
    private Integer id;
    private String username;
    private String password;
    private String photo;
    private Date createtime;
    private Date updatetime;
}

 接口写完,写实现,xml的方式实现,在我们的配置文件的mapper包下新建一个xml文件。

 数据持久层的实现,xml代码:


        

        

现在我们就完成了,然后我们进行测试一下:

测试

我们要自测一下是否可以成功查询,也就是单元测试。来到我们要测试的接口页面,接口UserMapper界面:

初识Mybatis,并创建第一个Mybatis项目(详细图文教程)_第10张图片

 初识Mybatis,并创建第一个Mybatis项目(详细图文教程)_第11张图片

 来到这个界面:

初识Mybatis,并创建第一个Mybatis项目(详细图文教程)_第12张图片会自动给我们生成测试的代码,一般我们不用改,给要测试的成员打上对勾就好了。

初识Mybatis,并创建第一个Mybatis项目(详细图文教程)_第13张图片

给生成的代码加上注解@SpringBootTest,表示要加载Springboot测试的环境,因为我们是在spring环境下进行的开发。接下来,将我们要测试的方法(类)注入进测试方法。


import com.example.springmybatisdemo.model.User;
import lombok.extern.slf4j.Slf4j;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;

import java.util.List;

import static org.junit.jupiter.api.Assertions.*;
@Slf4j
@SpringBootTest
class UserMapperTest {
    @Autowired
    private UserMapper userMapper;
    @Test
    void userAll() {
        List users=userMapper.userAll();
        log.info(users.toString());
    }
}

 然后直接运行,进行测试,测试成功结果如图:

初识Mybatis,并创建第一个Mybatis项目(详细图文教程)_第14张图片

若是有错,最先检查一下自己的数据库密码名称,数据库名、表名是否对应。 

这下我们 Mybatis 的第一个代码就写完了,下次再见~

你可能感兴趣的:(javaEE,mybatis,java,sql)