发布时间:2026/8/22 0:39:48
01-SpringBoot整合MySQL完整搭建:驱动配置、数据源、连接池一步到位 SpringBoot整合MySQL完整搭建驱动配置、数据源、连接池一步到位黒漂技术佬 · 2026年7月前言不管你是在做智慧农业大棚的温湿度采集系统还是在搞无人售货柜的订单后台——数据存在哪里答案是数据库。存文件那是在远古时代才干的蠢事现在谁还敢把订单信息往txt里塞老板第一个飞过来打你。而 Java 生态里最成熟的搭配无非就是SpringBoot MySQL。SpringBoot 帮你搞定配置和工程骨架MySQL 负责踏实存数据中间再搭一座桥——JDBC 驱动和连接池。今天这篇文章咱就从零开始把这座桥搭得明明白白。读完这篇你就能在自己的 SpringBoot 项目里顺畅地读写 MySQL连时区不对“SSL 报错”连接池耗尽这些鬼问题都能自己排查解决。一、SpringBoot 项目骨架先不管别的把 SpringBoot 项目搭起来。你可以用 Spring Initializr 勾选依赖也可以直接手写 pom.xml。我建议新手用 Initializr 走一遍感受一下下一代工程搭建的便利。核心依赖就这三个!-- SpringBoot Web 启动器 --dependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-web/artifactId/dependency!-- MySQL 驱动 --dependencygroupIdcom.mysql/groupIdartifactIdmysql-connector-j/artifactIdscoperuntime/scope/dependency!-- MyBatis-Plus 启动器自带 MyBatis --dependencygroupIdcom.baomidou/groupIdartifactIdmybatis-plus-boot-starter/artifactIdversion3.5.5/version/dependency小贴士mysql-connector-j是 MySQL 8.x 的驱动包名如果你还在用 5.x会看到mysql-connector-java那是老古董写法了。scope 设runtime就行编译期不需要它参与。如果不喜欢 MyBatis-Plus只想要原味 MyBatis换成mybatis-spring-boot-starter也可。但后面文章会介绍 MyBatis-Plus 的威力届时代码量能少一半所以咱提前布个局。二、数据源配置让 SpringBoot 认识你的 MySQL认识了谁当然是你的 MySQL 服务。在src/main/resources/application.yml里敲下这几行spring:datasource:url:jdbc:mysql://localhost:3306/smart_retail?useUnicodetruecharacterEncodingutf-8serverTimezoneAsia/Shanghaiusername:rootpassword:your_password_heredriver-class-name:com.mysql.cj.jdbc.Driver逐一解释参数含义容易踩的坑urlJDBC 连接串指定主机、端口、数据库名库名要提前建好别写了smart_retail回头 MySQL 里根本没这个库username/password不多说就是登录凭证生产环境别写明文后面讲配置中心时会展开driver-class-nameJDBC 驱动类全限定名MySQL 8.x 用com.mysql.cj.jdbc.Driver5.x 用com.mysql.jdbc.Driver一个很重要的参数serverTimezone。不写的后果是 Connector/J 抛出The server time zone value Öйú±ê׼ʱ¼ä is unrecognized中文字符在时区协商时翻了车报错信息都成乱码。一律设Asia/Shanghai或GMT%2B8一劳永逸。SSL 怎么办MySQL 8.x 默认开启 SSL而开发环境的数据库大概率没配证书。要么在 url 后面拼useSSLfalse简单粗暴仅限开发环境要么正经配 SSL。生产环境当然选后者但今天我们先把路走通。三、连接池为什么你需要它有人问“我直接每次请求建一个连接用完关掉不行吗”答案是当然不行。TCP 三次握手 MySQL 用户认证 线程创建的开销在高并发下能把你的服务拖死。设想一下无人售货柜每天早上 8 点统一结算100 台柜子同时请求——如果每次都新建连接你的数据库瞬间就会被连接洪流冲垮。连接池的核心思想提前创建一批连接请求来了直接借一个用用完还回去连接的创建和销毁由池子统一管理极大降低开销。四、HikariCPSpringBoot 的默认连接池SpringBoot 2.x 开始默认连接池从 Tomcat JDBC Pool 换成了HikariCP。这名字取自日语光ひかり寓意轻快如光事实也确实如此——它是目前 Java 界最快的连接池benchmark 数据非常能打。你什么都不写SpringBoot 就已经帮你配好了 HikariCP。但如果想精细调参加上这些spring:datasource:hikari:maximum-pool-size:20# 池中最大连接数minimum-idle:5# 池中最小空闲连接数connection-timeout:30000# 等待连接的超时时间(ms)idle-timeout:600000# 空闲连接最大存活时间(ms)max-lifetime:1800000# 连接最大生命周期(ms)connection-test-query:SELECT 1# 连接探活SQL参数解读maximum-pool-size上限默认 10。一台无人售货柜后台大概 20~30 个并发设 20 足够了。真要扛几百并发得综合考虑 CPU 核心数、MySQL 的max_connections等因素。minimum-idle保持几个待命兵默认和maximum-pool-size相同。建议设为 5太低响应慢太高浪费资源。connection-timeout排队等连接的极限时长超时就抛SQLTransientConnectionException。默认 30000ms30秒如果你的接口 SLA 是 3 秒响应这里设 5000 更合适。idle-timeout和max-lifetime强相关的两个参数。max-lifetime应比数据库的wait_timeout短 2~3 分钟避免 MySQL 主动断连接了池子还不知道用的时候发现连接已死。智慧农业场景大棚里几十个传感器每分钟上报一次数据这种闲时长、波峰集中的模式minimum-idle设小一点idle-timeout短一点既省资源又不影响业务。每个传感器上报只是 insert 一条记录拿到连接 10ms 就完事没必要长期占着。五、Druid连接池中的重型坦克阿里开源的 Druid 也不容忽视。它的优势在于自带监控面板SQL 执行统计、耗时分布、连接池状态一目了然内置 SQL 防火墙对 SQL 注入有一定防护能力功能丰富连接泄漏检测、慢 SQL 记录、数据库密码加密等怎么用在 pom.xml 中加入dependencygroupIdcom.alibaba/groupIdartifactIddruid-spring-boot-starter/artifactIdversion1.2.20/version/dependencyapplication.yml配置spring:datasource:type:com.alibaba.druid.pool.DruidDataSourcedruid:initial-size:5min-idle:5max-active:20stat-view-servlet:enabled:trueurl-pattern:/druid/*login-username:adminlogin-password:admin123web-stat-filter:enabled:truefilter:stat:enabled:truelog-slow-sql:trueslow-sql-millis:2000配置完启动项目访问http://localhost:8080/druid/就能看到监控面板。选型建议团队项目、需要运维监控 → Druid追求极致性能、轻量简单 → HikariCP。这俩不存在绝对优劣而是适用场景不同。对于无人售货柜这种 IOT 设备的后台数据表结构不复杂HikariCP 完全够用但如果有专门的 DBA 团队需要关注 SQL 质量Druid 的 SQL 监控面板是刚需。六、连接测试验证依赖和配置搞定之后写个测试类验证一下SpringBootTestclassDatabaseConnectionTest{AutowiredprivateDataSourcedataSource;TestvoidtestConnection()throwsSQLException{try(ConnectionconndataSource.getConnection()){assertNotNull(conn);System.out.println(数据库连接成功);System.out.println(连接池类型dataSource.getClass().getName());}}}跑一下看到控制台打印出HikariPool-1 - Starting...和HikariPool-1 - Start completed.就说明连接池初始化成功了。如果失败排查清单如下错误可能原因解决方案CommunicationsException: Communications link failureMySQL 服务没启动 / 端口错了 / 防火墙挡了netstat -anAccess denied for user用户名或密码错误去 MySQL 里SELECT user,host FROM mysql.user;确认Unknown database数据库名写错了或没建CREATE DATABASE smart_retail DEFAULT CHARACTER SET utf8mb4;Public Key Retrieval is not allowedMySQL 8.x 的 caching_sha2_password 认证问题url 加上allowPublicKeyRetrievaltrue时区报错没有设置 serverTimezoneurl 加上serverTimezoneAsia/Shanghai七、编码设置预防乱码从源头抓起有人写了个无人售货柜的广告管理系统结果货柜上的汉字广告全变成乱码大半夜被客户电话吵醒。血的教训。三层都要统一为utf8mb4支持 emoji 和生僻字spring:datasource:url:jdbc:mysql://localhost:3306/smart_retail?useUnicodetruecharacterEncodingutf-8数据库建库CREATEDATABASEsmart_retailCHARACTERSETutf8mb4COLLATEutf8mb4_unicode_ci;服务端 JVM 参数也建议加-Dfile.encodingUTF-8三层全对齐杜绝乱码。总结至此SpringBoot 与 MySQL 之间的桥梁就搭好了驱动引入 → 数据源配置 → 连接池选择 → 测试验证 → 常见坑排查一条龙搞定。记住几个关键决策点开发环境HikariCP 默认就够参数不用乱调需要监控上 Druid/druid/面板比你自己看日志强十倍encoding 必须统一jdbcUrl、数据库、JVM三处全设UTF-8桥搭好了下一篇我们就用 MyBatis 在这座桥上跑 SQL让数据真正流动起来。

相关新闻

2026/8/22 0:39:48

数维杯B题建模本质:问题定义、数据驱动与工程落地

1. 这道题到底在考什么:从“数维杯”B题标题看透建模本质“2024年第九届‘数维杯’大学生数学建模挑战赛B题”——光看这个标题,很多人第一反应是:又一道标准的竞赛题编号,没信息量。但作为连续带过七届校队、亲手改过三百多份B题…

2026/8/22 0:39:48

基于扩展卡尔曼滤波的机会信号导航建模与仿真实现

1. 项目概述:从赛题到实战的完整拆解又到了一年一度的数维杯数学建模挑战赛,今年的A题“源机会信号建模与导航分析”一出来,就在我们几个老建模人的小群里炸开了锅。这题目名字听起来有点唬人,什么“源机会信号”,但说…

2026/8/22 0:39:48

从因子链问题看数论核心:质因数分解与线性筛法应用

1. 项目概述:从一道题看透数论的核心骨架最近在带学生备赛蓝桥杯国赛,刷题时又碰到了“X的因子链”这道经典题目。它几乎每年都会以不同形式出现在各种算法竞赛中,堪称数论部分的“试金石”。很多同学初次接触时,会觉得题目描述有…

2026/8/22 2:04:53

Wand-Enhancer 教程:WeMod 专业版免费解锁与补丁完整指南

Wand-Enhancer 教程:WeMod 专业版免费解锁与补丁完整指南 【免费下载链接】Wand-Enhancer Advanced UX and interoperability extension for Wand (WeMod) app 项目地址: https://gitcode.com/GitHub_Trending/we/Wand-Enhancer WeMod 专业版按月订阅计费&am…

2026/8/22 2:04:53

极空间Z4Pro+性能版NAS深度评测:8核16G全能私有云部署与AI应用实战

这次我们来看一款定位全能的高性能 NAS 设备——极空间 Z4Pro 性能版。对于需要搭建家庭影音中心、小型企业文件服务器,或是希望将 AI 模型、Docker 服务本地化的用户来说,一台性能强劲、功能丰富的私有云是核心基础设施。Z4Pro 性能版主打“8核16G内存”…

2026/8/22 2:04:53

Cherry MX键帽3D打印:36种免费模型的完整指南

Cherry MX键帽3D打印:36种免费模型的完整指南 【免费下载链接】cherry-mx-keycaps 3D models of Chery MX keycaps 项目地址: https://gitcode.com/gh_mirrors/ch/cherry-mx-keycaps cherry-mx-keycaps 是一套免费的 Cherry MX 键帽 3D 模型库:36…

2026/8/22 2:04:53

PCM编码与音频文件格式底层解析

1. 这不是“听个响”的事:为什么搞懂PCM和文件格式能让你少踩80%的音频坑我带过三届音频开发实习生,第一堂课永远不讲代码,而是让他们用手机录一段30秒的环境音,再用Audacity打开波形图,把采样率从44.1kHz拉到8kHz——…

2026/8/22 2:04:53

招聘软件安全防护与防封号工具评测

1. 招聘软件安全防护现状分析在当前的数字化招聘环境中,企业HR和猎头们最头疼的问题莫过于账号被封禁。我作为技术负责人,见过太多因为使用不当工具而导致整个招聘团队工作停摆的案例。账号被封不仅意味着前期积累的候选人资源流失,更会导致招…

2026/8/22 1:59:53

Python线性规划实战:从Scipy入门到生产调度优化

1. 从“人狗大作战”到生产调度:线性规划的现实面孔 最近在社区里看到不少朋友在找“人狗大作战”这类小游戏的Python源码,或者琢磨怎么用Python画个动态折线图。这些兴趣点很棒,是驱动学习的绝佳燃料。但不知道你有没有想过,当你…

2026/8/21 13:13:49

工业通信系统底层逻辑:04 反射——高频能量撞墙之后会发生什么?

第四篇:反射——高频能量撞墙之后会发生什么? —— 你以为信号已经过去了,其实它正在回来打你 老Q的现场笔记 第五季,我们正式进入工业神经系统层。这里不再是单个设备的战斗,而是整个工厂“经脉”层面的秩序之战。从这一篇开始,你将第一次看清:看似简单的信号传播,背…

2026/8/21 20:14:07

工业传感器与变送器详解:序章 从物理世界到工业数据

序章 从物理世界到工业数据 ——重新认识工业传感器与变送器 工业自动化系统正变得日益复杂。今天的工业现场早已不是简单的控制回路,而是由多层技术共同构成的立体体系:PLC、DCS、SCADA、MES、工业互联网、边缘计算与人工智能。控制系统可以执行复杂算法,工业网络可以实现…

2026/8/21 15:40:01

实测才敢推 AI论文网站 2026最新测评与推荐

2026年真正好用的AI论文网站,核心看生成的论文质量、低AI味、格式正确、学术适配四大指标。综合实测,千笔AI、ThouPen、豆包、DeepSeek、Grammarly 是当前最值得推荐的梯队,覆盖从免费到付费、从中文到英文、从文科到理工的全场景需求。一、综…

2026/8/21 15:40:01

2026必备!AI论文网站测评:最新推荐与深度对比

2026年真正好用的AI论文网站,核心看生成的论文质量、低AI味、格式正确、学术适配四大指标。综合实测,千笔AI、ThouPen、豆包、DeepSeek、Grammarly 是当前最值得推荐的梯队,覆盖从免费到付费、从中文到英文、从文科到理工的全场景需求。 一、…

2026/8/22 1:39:53

摆脱论文困扰!盘点2026年全网爆红的的AI论文写作工具

一天写完毕业论文在2026年已不再是天方夜谭。2026年最炸裂、实测能大幅提速的AI论文写作工具,覆盖选题构思、文献整理、内容生成、格式排版等核心场景,真正帮你高效搞定论文难题。 一、全流程王者:一站式搞定论文全链路(一天定稿首…