news 2026/4/16 17:21:41

HoRain云--5分钟搞定SpringBoot连接MySQL

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
HoRain云--5分钟搞定SpringBoot连接MySQL

🎬 HoRain云小助手:个人主页

🔥 个人专栏: 《Linux 系列教程》《c语言教程》

⛺️生活的理想,就是为了理想的生活!


⛳️ 推荐

前些天发现了一个超棒的服务器购买网站,性价比超高,大内存超划算!忍不住分享一下给大家。点击跳转到网站。

专栏介绍

专栏名称

专栏介绍

《C语言》

本专栏主要撰写C干货内容和编程技巧,让大家从底层了解C,把更多的知识由抽象到简单通俗易懂。

《网络协议》

本专栏主要是注重从底层来给大家一步步剖析网络协议的奥秘,一起解密网络协议在运行中协议的基本运行机制!

《docker容器精解篇》

全面深入解析 docker 容器,从基础到进阶,涵盖原理、操作、实践案例,助您精通 docker。

《linux系列》

本专栏主要撰写Linux干货内容,从基础到进阶,知识由抽象到简单通俗易懂,帮你从新手小白到扫地僧。

《python 系列》

本专栏着重撰写Python相关的干货内容与编程技巧,助力大家从底层去认识Python,将更多复杂的知识由抽象转化为简单易懂的内容。

《试题库》

本专栏主要是发布一些考试和练习题库(涵盖软考、HCIE、HRCE、CCNA等)

目录

⛳️ 推荐

专栏介绍

Spring 与 MySQL 连接教程(Spring Boot 推荐方案)

✅ 一、Spring Boot 快速集成(5 分钟上手)

1️⃣ 前提条件

2️⃣ 创建项目(推荐)

3️⃣ 配置 application.yml(推荐)或 application.properties

4️⃣ 编写核心代码

5️⃣ 启动验证

⚠️ 二、高频问题解决方案

🔒 三、安全与生产建议

📌 四、传统 Spring(非 Boot)简要说明

🌟 总结


Spring 与 MySQL 连接教程(Spring Boot 推荐方案)

💡核心提示:现代 Spring 项目强烈推荐使用 Spring Boot(自动配置、开箱即用)。传统 Spring 配置复杂且易错,本文以 Spring Boot 3.x 为主,附关键注意事项。


✅ 一、Spring Boot 快速集成(5 分钟上手)

1️⃣ 前提条件

2️⃣ 创建项目(推荐)

访问 Spring Initializr:

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

🔑关键参数说明

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️⃣ 启动验证

  1. 运行Application.java
  2. 查看控制台日志:
    HikariPool-1 - Start completed. Hibernate: create table users ...
  3. 调用接口测试:
    POST http://localhost:8080/api/users+ JSON Body
    GET 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 allowedURL 添加&allowPublicKeyRetrieval=true(开发环境)
中文乱码URL 添加&useUnicode=true&characterEncoding=utf8
驱动类找不到确认依赖为mysql-connector-j(Boot 3.x)或mysql-connector-java(Boot 2.x)

🔒 三、安全与生产建议

  1. 密码管理
    password: ${DB_PASSWORD} # 通过环境变量注入
  2. 禁用开发参数:生产环境移除allowPublicKeyRetrieval=true,启用 SSL(useSSL=true
  3. 连接池优化application.yml):
    spring: datasource: hikari: maximum-pool-size: 10 connection-timeout: 30000
  4. 不要提交密码.gitignore中加入配置文件,使用 Spring Cloud Config 或 K8s Secrets

📌 四、传统 Spring(非 Boot)简要说明

若必须使用传统 Spring:

  1. 添加依赖:spring-jdbc+mysql-connector-j
  2. Java Config 配置 DataSource:
    @Bean public DataSource dataSource() { HikariDataSource ds = new HikariDataSource(); ds.setJdbcUrl("jdbc:mysql://..."); ds.setUsername("root"); ds.setPassword("pwd"); return ds; }
  3. 使用JdbcTemplate操作数据库

    💡强烈建议:新项目直接使用 Spring Boot,传统方式配置繁琐且易出错。


🌟 总结

📚 官方文档参考:

动手实践是掌握的关键!遇到问题可检查日志、确认 MySQL 服务状态、验证账号权限。祝你连接成功! 🚀

❤️❤️❤️本人水平有限,如有纰漏,欢迎各位大佬评论批评指正!😄😄😄

💘💘💘如果觉得这篇文对你有帮助的话,也请给个点赞、收藏下吧,非常感谢!👍 👍 👍

🔥🔥🔥Stay Hungry Stay Foolish 道阻且长,行则将至,让我们一起加油吧!🌙🌙🌙

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/16 8:41:24

SHP数据修复

Shp文件报错&#xff1f;一招解决“形状数与记录数不一致”问题&#xff01;在地理数据处理中&#xff0c;Shp文件是常见的格式之一。但你是否遇到过打开时提示“形状数与记录数不一致”的错误&#xff1f;别急&#xff0c;本文将为你详细解析问题原因并提供多种修复方法。一、…

作者头像 李华
网站建设 2026/4/16 8:46:38

新手也能上手的AI论文工具,千笔·专业论文写作工具 VS 知文AI

随着人工智能技术的迅猛迭代与普及&#xff0c;AI辅助写作工具已逐步渗透到高校学术写作场景中&#xff0c;成为专科生、本科生、研究生完成毕业论文不可或缺的辅助手段。越来越多面临毕业论文压力的学生&#xff0c;开始依赖各类AI工具简化写作流程、提升创作效率。但与此同时…

作者头像 李华
网站建设 2026/4/16 10:13:25

从新能源“质效并重”新阶段,看霍尔电流传感器的关键角色

当光伏电站的逆变器和储能系统的电池柜里&#xff0c;静默工作的霍尔电流传感器正以0.5%的精度守护着每一度绿色电力的安全与高效&#xff0c;新能源行业的高质量发展已悄然进入精密切量时代。光伏电站运维室内&#xff0c;工程师王工正盯着监控屏幕上突然跳动的数据曲线眉头紧…

作者头像 李华
网站建设 2026/4/16 11:57:36

破解人力数据割裂难题 用 HR 系统搭建数据驱动决策体系

在企业人力资源管理数字化进程中&#xff0c;数据分散成为普遍且棘手的问题&#xff0c;各模块数据孤立在不同表格、系统中&#xff0c;不仅增加了 HR 的工作成本&#xff0c;更让人力数据无法发挥实际价值。 而数据驱动决策是现代企业 HR 管理的核心方向&#xff0c;能让人事…

作者头像 李华
网站建设 2026/4/16 10:14:31

【Matlab】MATLAB continue跳过循环教程:语法解析、偶数累加案例与实战应用

MATLAB continue跳过循环教程:语法解析、偶数累加案例与实战应用 在MATLAB循环编程中,continue语句与break语句同为核心流程控制工具,但二者功能截然不同——break用于“强制终止整个循环”,而continue的核心作用是“跳过当前迭代的剩余代码,直接进入下一次迭代”,循环本…

作者头像 李华