springboot 配置数据库连接核心是在配置文件中填写数据源相关参数,引入对应数据库驱动依赖,springboot 会自动装配 DataSource 数据源,不需要手动编写大量原生 JDBC 代码,主流支持 mysql oracle postgresql 等数据库,最常用是 mysql。springboot2.x 和 3.x 版本有重要差别,springboot3.x 要求驱动类改成 com.mysql.cj.jdbc.Driver,url 必须带上时区参数,很多老项目升级之后报错,就是没有同步修改驱动类和 url。配置文件一般选用 application.yml 或者 application.properties,二选一即可,项目如果搭配 mybatis 或者 jpa,数据库连接配置是共用同一套数据源,配置完成之后可以启动项目测试连接,常见报错包含驱动找不到 账号密码错误 端口不通 时区异常,都是新手高频踩坑点。
前置准备
| 项目 | 说明 |
|---|---|
| 核心依赖 | mysql 数据库驱动依赖 |
| 配置文件 | application.yml 或者 application.properties |
| springboot 版本 | 区分 2.x 与 3.x 驱动类写法 |
| 配套框架 | mybatis mybatisplus jpa 都复用该数据源 |
maven 依赖配置
springboot 项目如果使用 mysql,需要在 pom.xml 加入 mysql 驱动依赖
springboot2.x 推荐 mysql8 版本驱动
springboot3.x 必须适配 jakarta,mysql 驱动版本也要对应升级
如果是 gradle 项目,在 build.gradle 里面添加对应的驱动依赖
yml 方式配置示例
spring
datasource
driverClassName com.mysql.cj.jdbc.Driver
url jdbc mysql localhost 3306 testdb useUnicode true characterEncoding utf8 serverTimezone Asia Shanghai
username root
password 123456
type com.zaxxer.hikari.HikariDataSource
properties 方式配置示例
spring.datasource.driverClassName=com.mysql.cj.jdbc.Driver
spring.datasource.url=jdbc:mysql://localhost:3306/testdb?useUnicode=true&characterEncoding=utf8&serverTimezone=Asia/Shanghai
spring.datasource.username=root
spring.datasource.password=123456
spring.datasource.type=com.zaxxer.hikari.HikariDataSource
内置连接池说明
springboot 默认数据源连接池是 HikariCP,性能优秀,默认已经集成,不需要额外引入,也可以切换成 druid 连接池,切换 druid 需要额外引入 druid 依赖,并且增加 druid 专属监控参数,druid 支持 sql 监控 慢查询统计,企业项目使用比较多。
配置落地步骤
第一步 确认本地或者远程数据库已经启动,数据库账号密码 端口 库名确认无误
第二步 在 pom.xml 添加对应数据库驱动依赖,刷新 maven,保证依赖下载成功
第三步 打开 application.yml 或者 properties,填写 driverClassName url username password
第四步 url 补充必要参数,时区 编码,mysql8 必须加上 serverTimezone Asia Shanghai
第五步 启动 springboot 项目,观察控制台日志,看数据源是否初始化成功
第六步 编写测试类,获取连接,执行简单查询语句,验证数据库连接是否正常
进阶参数补充
连接池最大连接数 maximumPoolSize
最小空闲连接 minimumIdle
连接超时 connectionTimeout
这些参数可以在 datasource 下面追加,根据项目并发量调整,默认参数适合小型项目,高并发项目需要调优。
总结
springboot 配置数据库连接,本质就是引入数据库驱动,在配置文件填写数据源四项核心参数 url 账号 密码 驱动类,默认 Hikari 连接池自动装配,重点区分 springboot2.x 和 3.x mysql 驱动类写法,mysql8 版本 url 一定要加上时区参数,配置完成之后启动项目验证连通性。
【常见问题】
问题 1 springboot 配置数据库连接报错找不到驱动类怎么办
回答 1 springboot 配置数据库连接报错找不到驱动类,优先检查 pom.xml 有没有引入 mysql 驱动依赖,并且确认 springboot3.x 驱动类是 com.mysql.cj.jdbc.Driver,不要继续使用旧版 com.mysql.jdbc.Driver。
问题 2 springboot 配置数据库连接可以使用 druid 连接池吗
回答 1 springboot 配置数据库连接默认是 HikariCP,也可以替换成 druid 连接池,需要额外引入 druid starter 依赖,并且修改 spring.datasource.type 为 druid 对应的类。
问题 3 springboot 配置数据库连接 mysql8 为什么必须写时区参数
回答 1 springboot 配置数据库连接 mysql8 版本驱动升级之后,不指定 serverTimezone 会抛出时区异常,url 追加 serverTimezone Asia Shanghai 就可以解决该报错。
【免责申明】
本内容为 springboot 技术学习参考,不同 springboot 版本 数据库版本参数会存在差异,生产环境请结合官方文档和项目实际环境调整配置。


