10. Mybatis 项目的创建

目录

1. Mybatis 概念

2. 第一个 Mybits 查询

2.1 创建数据库和表 

2.2 添加 Mybatis 框架支持

2.3 添加配置文件

2.4 配置 MyBatis 中的 XML 路径

2.5 添加业务代码


在学习 Mybatis 之前,我们需要知道 Mybatis 和 Spring 没有任何的关系。如果一定要强调二者之间的关系的话,那就是 Spring 集成了 Mybatis 框架,使开发更加简单。

也就是说 Mybatis 可以脱离 Spring 使用。 

1. Mybatis 概念

MyBatis 是⼀款优秀的持久层框架,它支持自定义 SQL、存储过程以及高级映射。MyBatis 去除了几乎所有的 JDBC 代码以及设置参数和获取结果集的工作。MyBatis 可以通过简单的 XML 或注解来配置 和映射原始类型、接口和 Java POJO(Plain Old Java Objects,普通老式 Java 对象)为数据库中的记录。

简单来说 MyBatis 是更简单完成程序和数据库交互的工具,也就是更简单的操作和读取数据库工具。

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

  1. 后端程序
  2. 数据库 

而这两个重要的组成部分要依靠数据库连接工具,我们先来回忆一下 JDBC 的操作流程:

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

那么,Mybatis 就是用来简化上述操作的,具体通过以下两部分来完成:

  •  配置 MyBatis 开发环境;
  •  使用 MyBatis 模式和语法操作数据库。

2. 第一个 Mybits 查询

我们先来看一下 Mybits 在整个框架的定位:

10. Mybatis 项目的创建_第1张图片

2.1 创建数据库和表 

接下来我们要实现的功能是:使用 MyBatis 的方式来读取用户表中的所有用户,我们使用个人博 客的数据库和数据包,具体 SQL 如下:

-- 创建数据库
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 default now(),
 updatetime datetime default now(),
 `state` int default 1
) 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)
;

10. Mybatis 项目的创建_第2张图片

2.2 添加 Mybatis 框架支持

10. Mybatis 项目的创建_第3张图片

10. Mybatis 项目的创建_第4张图片

接下来通过安装插件的方式:

10. Mybatis 项目的创建_第5张图片

插件的使用方法:

10. Mybatis 项目的创建_第6张图片

同样可以选择需要的依赖:

10. Mybatis 项目的创建_第7张图片

 还可以安装如下图所示的插件,方便数据库相关的信息提示:

10. Mybatis 项目的创建_第8张图片

2.3 添加配置文件

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

10. Mybatis 项目的创建_第9张图片

2.4 配置 MyBatis 中的 XML 路径

mybatis:
  mapper-locations: classpath:mapper/**Mapper.xml

10. Mybatis 项目的创建_第10张图片

2.5 添加业务代码

用户的实体类:

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

添加 mapper 接口:

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

新建 mapper 文件夹: 

10. Mybatis 项目的创建_第11张图片

添加 UserMapper.xml 文件: 





 UserMapper.xml 查询所有用户的具体实现 SQL:




    

id 表示的就是实现接口里的哪个方法。 resulttype 表示的是返回结果的对象的类型,而不是返回结果的类型(queryAll 返回结果的类型是 List)。

接下来进行自测(单元测试):

10. Mybatis 项目的创建_第12张图片

10. Mybatis 项目的创建_第13张图片

10. Mybatis 项目的创建_第14张图片

接下来在生成的测试方法中加上注解: 

10. Mybatis 项目的创建_第15张图片

编写完整的测试代码如下:

@Slf4j
@SpringBootTest
class UserMapperTest {

    @Autowired
    private UserMapper userMapper;
    @Test
    void queryAll() {
        List users = userMapper.queryAll();
        log.info(users.toString());
    }
}

可以看到,运行后成功的将数据显示: 

 

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