• SpringBoot连接MySQL数据库,使用Mybatis框架(入门)


    1. 说明

    SpringBoot项目,连接MySQL数据库,使用Mybatis框架

    本篇文章作为 SpringBoot 使用 Mybatis 的入门。

    2. 依赖

    2.1. MySQL驱动依赖

    MySQL驱动,使用SpringBoot版本对应的默认版本,不需要手动指定版本。

    比如:SpringBoot 版本为 2.7.15,对应的 MySQL 驱动的版本为 8.0.33

            <dependency>
                <groupId>com.mysqlgroupId>
                <artifactId>mysql-connector-jartifactId>
                <scope>runtimescope>
            dependency>
    
    • 1
    • 2
    • 3
    • 4
    • 5

    2.2. Mybatis依赖

    MyBatis版本,使用SpringBoot版本推荐的版本(在新建项目时,会根据SpringBoot版本自动生成对应的MyBatis版本)。

    比如:SpringBoot 版本为 2.7.15,对应的 MyBatis 的版本为 2.3.1

            <dependency>
                <groupId>org.mybatis.spring.bootgroupId>
                <artifactId>mybatis-spring-boot-starterartifactId>
                <version>2.3.1version>
            dependency>
    
    • 1
    • 2
    • 3
    • 4
    • 5

    3. 配置数据源

    application.yml 文件中,配置数据源(MySQL数据库)。

    包括:数据库url,用户名,密码,驱动

    spring:
      datasource:
        url: jdbc:mysql://localhost:3306/mybatisplus?serverTimeZone=UTC&characterEncoding=utf8&useUnicode=true&useSSL=false
        username: root
        password: password
        driver-class-name: com.mysql.cj.jdbc.Driver
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    mysql驱动,使用的是新版驱动 com.mysql.cj.jdbc.Driver;使用旧版驱动,在项目启动的时候,会报错。

    4. Controller - Service - Mapper - Entity

    4.1. 图示

    在这里插入图片描述

    4.2. Entity

    package com.example.web.entity;
    
    import lombok.Data;
    
    @Data
    public class User {
        private Long id;
        private String name;
        private Integer age;
        private String email;
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11

    4.3. Mapper

    4.3.1. Mapper.java

    package com.example.web.mapper;
    
    import com.example.web.entity.User;
    import org.apache.ibatis.annotations.Mapper;
    
    import java.util.List;
    
    @Mapper
    public interface UserMapper {
        List<User> listAll();
    }
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12

    4.3.2. Mapper.xml

    注意:这个 Mapper.xml 文件所在的路径com.example.web.mapper),默认情况,必须和 Mapper.java 文件的路径一致,否则会报错,找不到映射文件(Mapper.xml)。

    
    DOCTYPE mapper
            PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
            "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
    <mapper namespace="com.example.web.mapper.UserMapper">
    
        <select id="listAll" resultType="com.example.web.entity.User">
            select * from user
        select>
    
    mapper>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11

    4.4. Service

    4.4.1. Service接口

    package com.example.web.service;
    
    import com.example.web.entity.User;
    
    import java.util.List;
    
    public interface UserService {
        List<User> listAll();
    }
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

    4.4.2. Service实现

    package com.example.web.service.impl;
    
    import com.example.web.entity.User;
    import com.example.web.mapper.UserMapper;
    import com.example.web.service.UserService;
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.stereotype.Service;
    
    import java.util.List;
    
    @Service
    public class UserServiceImpl implements UserService {
    
        @Autowired
        private UserMapper userMapper;
    
        @Override
        public List<User> listAll() {
            return userMapper.listAll();
        }
    }
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22

    4.5. Controller

    package com.example.web.controller;
    
    import com.example.web.entity.User;
    import com.example.web.service.UserService;
    import org.springframework.beans.factory.annotation.Autowired;
    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("users")
    public class UserController {
    
        @Autowired
        private UserService userService;
    
        @GetMapping
        public List<User> selectAll() {
            return userService.listAll();
        }
    
    }
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25

    5. 接口请求与数据

    5.1. 接口请求示例

    在这里插入图片描述

    5.2. 数据库中的表和数据

    在这里插入图片描述

    6. SpringBoot项目创建时添加mysql驱动和mybatis依赖

    这里创建新项目使用的是STS(SpringToolSuite4),因为 IDEA 社区版没法创建SpringBoot项目。
    在这里插入图片描述

    在这里插入图片描述

    MySQL的驱动版本,不需要指定。有和SpringBoot版本适配的默认版本。
    在这里插入图片描述

    7. 对比:“MySQL驱动”指定版本和不指定版本

    7.1. 指定版本

    在这里插入图片描述

    7.2. 不指定版本(跟随SpringBoot版本)

    在这里插入图片描述

    8. MySQL驱动的maven仓库坐标变化

    MySQL驱动的maven仓库坐标发生了变化。

    官方将原来的 mysql-connector-java 改为了 mysql-connector-j

    测试时间点为:2023年9月3日

    在这里插入图片描述

  • 相关阅读:
    2023最新SSM计算机毕业设计选题大全(附源码+LW)之java高校学生社团管理系统n4pcu
    paddle实现,多维时序数据增强 ,mixup(利用beta分布制作连续随机数)
    Docker——入门实战
    Redis性能管理及主从复制、哨兵的配置与部署
    python语法杂记
    Python数据分析与机器学习42-Python库分析科比生涯数据
    隆云通氨气传感器
    深度解析KubeEdge EdgeMesh 高可用架构
    C# 图解教程 第5版 —— 第10章 语句
    关于 Nginx 0day 漏洞,需要采取哪些措施?
  • 原文地址:https://blog.csdn.net/sgx1825192/article/details/132651024