04. Springboot3整合MyBatis实现数据库操作

1396 字约 3 分钟读完11139 次阅读更新于 2026/5/3

安装软件

MySQL5.7 或 8.x、Navicat(数据库可视化工具)

前置知识:Mysql 的基础语法

创建数据库 code2025

新建数据库,配置字符集和编码

新建表管理员表 admin

所有表的主键名称叫 id,都是自动递增的,id 是唯一的数据,删除后无法再填充回去,比如删除 id=2 这个数据,那么 id=2 就永远没有了

admin 表的结构

CREATE TABLE `admin` (
  `id` int(11) NOT NULL AUTO_INCREMENT COMMENT 'ID',
  `username` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '账号',
  `password` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '密码',
  `name` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '名称',
  `phone` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '手机',
  `email` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '邮箱',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='管理员信息';

设置 username 唯一

测试查询操作

SELECT * FROM admin WHERE id = 1;

SpringBoot 集成 Mybatis

Mybatis 官网:https://mybatis.org/mybatis-3/zh_CN/index.html

在 pom.xml 里面添加 Mysql 依赖 和 MyBatis 依赖

<dependency>
    <groupId>com.mysql</groupId>
    <artifactId>mysql-connector-j</artifactId>
    <scope>runtime</scope>
</dependency>

<dependency>
    <groupId>org.mybatis.spring.boot</groupId>
    <artifactId>mybatis-spring-boot-starter</artifactId>
    <version>3.0.3</version>
</dependency>

Springboot 配置数据库和 Mybatis

application.yml 里面的配置

# 数据库配置
spring:
  datasource:
    driver-class-name: com.mysql.cj.jdbc.Driver
    username: root
    password: 123456
    url: jdbc:mysql://localhost:3306/code2025?useUnicode=true&characterEncoding=utf-8&allowMultiQueries=true&useSSL=false&serverTimezone=GMT%2b8&allowPublicKeyRetrieval=true
# 配置mybatis实体和xml映射
mybatis:
  ## 映射xml
  mapper-locations: classpath:mapper/*.xml
  configuration:
    # 配置日志
    log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
    map-underscore-to-camel-case: true

classpath: 表示 resources 的目录

创建 mapper 文件夹

创建实体类 Admin

创建 AdminMapper.xml 文件

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
        "https://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.example.mapper.AdminMapper">
    

</mapper>

创建 mapper 接口层

package com.example.mapper;

import com.example.entity.Admin;

import java.util.List;

public interface AdminMapper {

    List<Admin> selectAll();

}

在启动类上面扫描 mapper 接口层

Mapper 接口和 Mapper.xml 的关系

Mapper 定义接口的方法

Mapper.xml 里面去实现方法(SQL 语句实现)

下载插件 MybatisX

连接数据库写一个查询接口

AdminController

import com.example.service.AdminService;
import jakarta.annotation.Resource;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import java.util.List;

@RestController
@RequestMapping("/admin")
public class AdminController {

    @Resource
    AdminService adminService;

    @GetMapping("/selectAll")  //   完整的请求路径:http://ip:port/admin/selectAll
    public Result selectAll() {
        List<Admin> adminList = adminService.selectAll();
        return Result.success(adminList);
    }

}

AdminService

package com.example.service;

import com.example.entity.Admin;
import com.example.exception.CustomerException;
import com.example.mapper.AdminMapper;
import jakarta.annotation.Resource;
import org.springframework.stereotype.Service;

import java.util.List;

@Service
public class AdminService {

    @Resource
    AdminMapper adminMapper;

    public List<Admin> selectAll() {
        return adminMapper.selectAll();
    }

}

AdminMapper

package com.example.mapper;

import com.example.entity.Admin;

import java.util.List;

public interface AdminMapper {

    List<Admin> selectAll();

}

AdminMapper.xml

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
        "https://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.example.mapper.AdminMapper">

    <select id="selectAll" resultType="com.example.entity.Admin">
        select * from `admin` order by id desc
    </select>

</mapper>

测试查询接口

最后测试的结果:

http://localhost:9999/admin/selectAll