在 Spring Boot 应用中,application.yml
是常用的配置文件,用于配置数据库连接是其重要用途之一。下面详细介绍如何在 application.yml
中配置数据库相关信息。
一、基础配置(以 MySQL 为例)
spring:
datasource:
url: jdbc:mysql://localhost:3306/yourdbname?useUnicode=true&characterEncoding=utf-8&useSSL=true&serverTimezone=UTC
username: root
password: yourpassword
driver-class-name: com.mysql.cj.jdbc.Driver
说明:
- url:数据库连接地址,格式为
jdbc:mysql://主机:端口/数据库名?参数
。 - username/password:数据库用户名和密码。
- driver-class-name:驱动类名,MySQL 8.x 及以上使用
com.mysql.cj.jdbc.Driver
。
二、连接池配置(HikariCP)
Spring Boot 2.x 默认使用 HikariCP 连接池,可添加以下配置优化性能:
spring:
datasource:
hikari:
minimum-idle: 5 # 最小空闲连接数
maximum-pool-size: 15 # 最大连接数
auto-commit: true # 自动提交
idle-timeout: 30000 # 空闲连接超时时间(毫秒)
pool-name: HikariCP # 连接池名称
max-lifetime: 1800000 # 连接最大生命周期(毫秒)
connection-timeout: 30000 # 连接超时时间(毫秒)
connection-test-query: SELECT 1 # 测试连接的 SQL
三、多数据源配置
若需要连接多个数据库,可配置多个数据源:
spring:
datasource:
primary: # 主数据源
url: jdbc:mysql://localhost:3306/db1
username: root
password: password
driver-class-name: com.mysql.cj.jdbc.Driver
secondary: # 次数据源
url: jdbc:mysql://localhost:3306/db2
username: root
password: password
driver-class-name: com.mysql.cj.jdbc.Driver
注意:
多数据源需要通过 Java 代码手动配置 DataSource
Bean,application.yml
仅提供配置参数。
四、其他数据库配置示例
1. PostgreSQL
spring:
datasource:
url: jdbc:postgresql://localhost:5432/yourdbname
username: postgres
password: yourpassword
driver-class-name: org.postgresql.Driver
2. Oracle
spring:
datasource:
url: jdbc:oracle:thin:@localhost:1521:ORCL
username: system
password: yourpassword
driver-class-name: oracle.jdbc.OracleDriver
3. SQL Server
spring:
datasource:
url: jdbc:sqlserver://localhost:1433;databaseName=yourdbname
username: sa
password: yourpassword
driver-class-name: com.microsoft.sqlserver.jdbc.SQLServerDriver
五、JPA/Hibernate 配置
若使用 Spring Data JPA,可添加以下配置:
spring:
jpa:
hibernate:
ddl-auto: update # 自动创建/更新表结构(可选:create, create-drop, validate)
show-sql: true # 显示 SQL 语句
properties:
hibernate:
format_sql: true # 格式化 SQL 语句
dialect: org.hibernate.dialect.MySQL8Dialect # 数据库方言
六、常用参数说明
参数 | 描述 |
---|---|
ddl-auto | 自动管理表结构(none /validate /update /create /create-drop ) |
show-sql | 打印 SQL 语句到控制台 |
format_sql | 格式化打印的 SQL 语句 |
hibernate.dialect | 指定数据库方言(如 MySQL8Dialect) |
generate-ddl | 是否自动生成 DDL 语句 |
七、注意事项
- 依赖问题:确保
pom.xml
中添加了对应数据库的驱动依赖(如 MySQL、PostgreSQL)。 - 安全性:生产环境建议将密码等敏感信息通过环境变量或配置中心管理。
- 连接参数:URL 中的参数(如
serverTimezone
)需根据数据库版本调整。
如果需要更具体的配置示例或遇到问题,请告诉我!