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

您所在的位置:网站首页 mybatis工具类怎么引用 初识Mybatis,并创建第一个Mybatis项目(详细图文教程)

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

2024-07-11 16:18| 来源: 网络整理| 查看: 265

目录

前言

一、Mybatis是什么?

二、Mybatis的优点

三、创建第一个Mybatis项目

配置Mybatis开发环境

创建数据库

添加框架

 配置连接字符串和Mybatis

使用Mybatis操作数据库

测试

前言

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

一、Mybatis是什么?

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

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

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

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工具上进行执行,查询表中数据结果如下即插入成功,进行下一步:

添加框架

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

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

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

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

 

第三种就是直接引入依赖到 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由两部分,一个是接口一个是实现,实现由两种方法: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模式和语法操作数据库。

使用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代码:

select * from userinfo;

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

测试

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

 

 来到这个界面:

会自动给我们生成测试的代码,一般我们不用改,给要测试的成员打上对勾就好了。

给生成的代码加上注解@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 的第一个代码就写完了,下次再见~



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3