当前位置: 首页 > news >正文

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.mysql</groupId><artifactId>mysql-connector-j</artifactId><scope>runtime</scope></dependency>

2.2. Mybatis依赖

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

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

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

3. 配置数据源

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

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

spring:datasource:url: jdbc:mysql://localhost:3306/mybatisplus?serverTimeZone=UTC&characterEncoding=utf8&useUnicode=true&useSSL=falseusername: rootpassword: passworddriver-class-name: com.mysql.cj.jdbc.Driver

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

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)。

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapperPUBLIC "-//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 {@Autowiredprivate UserMapper userMapper;@Overridepublic 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 {@Autowiredprivate UserService userService;@GetMappingpublic List<User> selectAll() {return userService.listAll();}}

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日

在这里插入图片描述

http://www.lryc.cn/news/153336.html

相关文章:

  • 滑动窗口实例6(找到字符串中所有字母异位词)
  • 武林新秀(一)`git init` 初始化一个新的Git仓库
  • gRPC之Interceptor
  • 计算机竞赛 基于机器视觉的二维码识别检测 - opencv 二维码 识别检测 机器视觉
  • ELK安装、部署、调试 (七)kibana的安装与配置
  • 【Npm】的安装和使用教程
  • 22.3D等距社交媒体菜单的悬停特效
  • 音视频开发常用工具
  • 【leetcode 力扣刷题】字符串匹配之经典的KMP!!!
  • C#的反射机制
  • 浅谈城市轨道交通视频监控与AI视频智能分析解决方案
  • 【LeetCode每日一题合集】2023.8.14-2023.8.20(⭐切披萨3n块披萨)
  • 通过ref 操作dom , 点击按钮后跳转到页面指定图片位置
  • QT 设置应用程序图标
  • 牛客网刷题
  • ES6核心语法
  • python 之import与from import 导入库的解析与差异
  • python实现MQTT协议(发布者,订阅者,topic)
  • 2023年09月03日-----16:58
  • HTTP状态码504(Gateway Timeout)报错原因分析和解决办法
  • 《凤凰架构》第三章——事务处理
  • 音视频添 加水印
  • 使用Python的requests库与chatGPT进行通信
  • SASS常用内置函数
  • 2023年05月 C/C++(四级)真题解析#中国电子学会#全国青少年软件编程等级考试
  • Emmet 使用笔记小结
  • 如何使用Puppeteer进行新闻网站数据抓取和聚合
  • 【LeetCode每日一题合集】2023.8.7-2023.8.13(动态规划分治)
  • 微信小程序修改vant组件样式
  • yum 、rpm、yumdownloader、repotrack 学习笔记