HoRain云--5分钟搞定SpringBoot连接MySQL
本文提供了SpringBoot快速集成MySQL的详细教程,推荐使用SpringBoot3.x+MySQL8.0组合。主要内容包括:5分钟快速上手指南,从项目创建到核心代码编写;常见问题解决方案,如时区错误、认证失败等;生产环境安全建议,包括密码管理和连接池优化;同时对比了传统Spring配置的复杂性,强调SpringBoot的便捷性。教程涵盖实体类定义、Repository接口实现和测试Cont

🎬 HoRain云小助手:个人主页
🔥 个人专栏: 《Linux 系列教程》《c语言教程》
⛺️生活的理想,就是为了理想的生活!
⛳️ 推荐
前些天发现了一个超棒的服务器购买网站,性价比超高,大内存超划算!忍不住分享一下给大家。点击跳转到网站。
专栏介绍
|
专栏名称 |
专栏介绍 |
|
本专栏主要撰写C干货内容和编程技巧,让大家从底层了解C,把更多的知识由抽象到简单通俗易懂。 |
|
|
本专栏主要是注重从底层来给大家一步步剖析网络协议的奥秘,一起解密网络协议在运行中协议的基本运行机制! |
|
|
全面深入解析 docker 容器,从基础到进阶,涵盖原理、操作、实践案例,助您精通 docker。 |
|
|
本专栏主要撰写Linux干货内容,从基础到进阶,知识由抽象到简单通俗易懂,帮你从新手小白到扫地僧。 |
|
|
本专栏着重撰写Python相关的干货内容与编程技巧,助力大家从底层去认识Python,将更多复杂的知识由抽象转化为简单易懂的内容。 |
|
|
本专栏主要是发布一些考试和练习题库(涵盖软考、HCIE、HRCE、CCNA等) |
目录
Spring 与 MySQL 连接教程(Spring Boot 推荐方案)
3️⃣ 配置 application.yml(推荐)或 application.properties

Spring 与 MySQL 连接教程(Spring Boot 推荐方案)
💡 核心提示:现代 Spring 项目强烈推荐使用 Spring Boot(自动配置、开箱即用)。传统 Spring 配置复杂且易错,本文以 Spring Boot 3.x 为主,附关键注意事项。
✅ 一、Spring Boot 快速集成(5 分钟上手)
1️⃣ 前提条件
- JDK 17+(Spring Boot 3.x 要求)
- MySQL 8.0+(推荐)或 5.7+
- Maven/Gradle
- 已创建空数据库(如
testdb):CREATE DATABASE testdb CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
2️⃣ 创建项目(推荐)
- Project: Maven
- Language: Java
- Spring Boot: 3.2+(最新稳定版)
- Dependencies:
Spring Web+Spring Data JPA+MySQL Driver - 点击 Generate,解压导入 IDE
3️⃣ 配置 application.yml(推荐)或 application.properties
spring:
datasource:
url: jdbc:mysql://localhost:3306/testdb?useSSL=false&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true&useUnicode=true&characterEncoding=utf8
username: root
password: your_password # ⚠️ 生产环境用环境变量!
driver-class-name: com.mysql.cj.jdbc.Driver
jpa:
hibernate:
ddl-auto: update # 首次用 create,后续改 update;生产环境禁用!
show-sql: true
properties:
hibernate:
dialect: org.hibernate.dialect.MySQL8Dialect
format_sql: true
🔑 关键参数说明:
serverTimezone:避免时区错误(根据所在地修改)allowPublicKeyRetrieval=true:仅开发环境使用,解决认证问题(生产需配 SSL)characterEncoding=utf8:解决中文乱码
4️⃣ 编写核心代码
实体类 (User.java):
import jakarta.persistence.*;
import java.time.LocalDateTime;
@Entity
@Table(name = "users")
public class User {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
@Column(nullable = false, length = 50)
private String name;
private String email;
@Column(updatable = false)
private LocalDateTime createdAt = LocalDateTime.now();
// Getter/Setter 省略(建议用 Lombok)
}
Repository 接口 (UserRepository.java):
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.stereotype.Repository;
@Repository
public interface UserRepository extends JpaRepository<User, Long> {
// 自动实现 CRUD,可扩展自定义查询方法
}
测试 Controller (TestController.java):
@RestController
@RequestMapping("/api/users")
public class TestController {
@Autowired
private UserRepository userRepository;
@PostMapping
public User create(@RequestBody User user) {
return userRepository.save(user);
}
@GetMapping
public List<User> getAll() {
return userRepository.findAll();
}
}
5️⃣ 启动验证
- 运行
Application.java - 查看控制台日志:
HikariPool-1 - Start completed. Hibernate: create table users ... - 调用接口测试:
POST http://localhost:8080/api/users+ JSON BodyGET http://localhost:8080/api/users
⚠️ 二、高频问题解决方案
| 问题现象 | 解决方案 |
|---|---|
Unknown system variable 'query_cache_size' |
升级 MySQL 驱动至 8.0.33+ |
时区错误 The server time zone value ... |
URL 添加 &serverTimezone=Asia/Shanghai |
认证失败 Public Key Retrieval is not allowed |
URL 添加 &allowPublicKeyRetrieval=true(开发环境) |
| 中文乱码 | URL 添加 &useUnicode=true&characterEncoding=utf8 |
| 驱动类找不到 | 确认依赖为 mysql-connector-j(Boot 3.x)或 mysql-connector-java(Boot 2.x) |
🔒 三、安全与生产建议
- 密码管理:
password: ${DB_PASSWORD} # 通过环境变量注入 - 禁用开发参数:生产环境移除
allowPublicKeyRetrieval=true,启用 SSL(useSSL=true) - 连接池优化(
application.yml):spring: datasource: hikari: maximum-pool-size: 10 connection-timeout: 30000 - 不要提交密码:
.gitignore中加入配置文件,使用 Spring Cloud Config 或 K8s Secrets
📌 四、传统 Spring(非 Boot)简要说明
若必须使用传统 Spring:
- 添加依赖:
spring-jdbc+mysql-connector-j - Java Config 配置 DataSource:
@Bean public DataSource dataSource() { HikariDataSource ds = new HikariDataSource(); ds.setJdbcUrl("jdbc:mysql://..."); ds.setUsername("root"); ds.setPassword("pwd"); return ds; } - 使用
JdbcTemplate操作数据库💡 强烈建议:新项目直接使用 Spring Boot,传统方式配置繁琐且易出错。
🌟 总结
- 首选 Spring Boot + JPA:自动配置、减少样板代码
- 驱动选择:
Spring Boot 3.x →mysql-connector-j
Spring Boot 2.x →mysql-connector-java - 调试技巧:开启
logging.level.org.springframework.jdbc=DEBUG查看 SQL - 进阶学习:
→ 事务管理@Transactional
→ 多数据源配置
→ MyBatis 替代 JPA(按团队技术栈选择)
📚 官方文档参考:
动手实践是掌握的关键!遇到问题可检查日志、确认 MySQL 服务状态、验证账号权限。祝你连接成功! 🚀
❤️❤️❤️本人水平有限,如有纰漏,欢迎各位大佬评论批评指正!😄😄😄
💘💘💘如果觉得这篇文对你有帮助的话,也请给个点赞、收藏下吧,非常感谢!👍 👍 👍
🔥🔥🔥Stay Hungry Stay Foolish 道阻且长,行则将至,让我们一起加油吧!🌙🌙🌙
更多推荐



所有评论(0)