Springboot3整合MyBatis实现数据库操作

安装软件

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

创建数据库

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

屏幕截图 2026-02-13 103146

新建表

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

admin表结构

CREATE TABLE `admin` (
  `id` int 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 唯一(可以不进行这一步)

屏幕截图 2026-02-13 155300

测试查询操作

SELECT * FROM admin WHERE Id=1;

屏幕截图 2026-02-13 105132

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-test</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/code?serverTimezone=Asia/Shanghai&useSSL=false&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 的目录

创建实体类Admin

package com.example.entity;

创建 mapper 文件夹

/**
 * 管理员信息
 */
public class Admin {
    private Integer id;
    private String name;
    private String password;
    private String email;
    private String phone;

    public Integer getId() {
        return id;
    }

    public void setId(Integer id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getPassword() {
        return password;
    }

    public void setPassword(String password) {
        this.password = password;
    }

    public String getEmail() {
        return email;
    }

    public void setEmail(String email) {
        this.email = email;
    }

    public String getPhone() {
        return phone;
    }

    public void setPhone(String phone) {
        this.phone = phone;
    }
}

创建 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>

创建 mapper 接口层

package com.example.mapper;

import com.example.entity.Admin;

import java.util.List;

public interface AdminMapper {

    List<Admin> selectAll();
}

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

屏幕截图 2026-02-13 120847

Mapper 接口和Mapper.xml 的关系
Mapper 定义接口方法
Mapper.xml 实现方法(SQL 语句实现)

下载插件 MybatisX

屏幕截图 2026-02-13 114521

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

AdminController

package com.example.controller;

import com.example.common.Result;
import com.example.entity.Admin;
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

屏幕截图 2026-02-13 153438

posted @ 2026-02-13 16:12  坚持努力学习ing  阅读(4)  评论(0)    收藏  举报