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>

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>

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

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

4. Controller - Service - Mapper - Entity

4.1. 图示

SpringBoot连接MySQL数据库,使用Mybatis框架(入门)_第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;
}

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();
}

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>

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();
}

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();
    }
}

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();
    }

}

5. 接口请求与数据

5.1. 接口请求示例

SpringBoot连接MySQL数据库,使用Mybatis框架(入门)_第2张图片

5.2. 数据库中的表和数据

SpringBoot连接MySQL数据库,使用Mybatis框架(入门)_第3张图片

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

这里创建新项目使用的是STS(SpringToolSuite4),因为 IDEA 社区版没法创建SpringBoot项目。
SpringBoot连接MySQL数据库,使用Mybatis框架(入门)_第4张图片

SpringBoot连接MySQL数据库,使用Mybatis框架(入门)_第5张图片

MySQL的驱动版本,不需要指定。有和SpringBoot版本适配的默认版本。
SpringBoot连接MySQL数据库,使用Mybatis框架(入门)_第6张图片

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

7.1. 指定版本

SpringBoot连接MySQL数据库,使用Mybatis框架(入门)_第7张图片

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

SpringBoot连接MySQL数据库,使用Mybatis框架(入门)_第8张图片

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

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

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

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

SpringBoot连接MySQL数据库,使用Mybatis框架(入门)_第9张图片

你可能感兴趣的:(数据库,spring,boot,mysql,mybatis)