application.yml配置数据库

在 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

说明:

  1. url:数据库连接地址,格式为 jdbc:mysql://主机:端口/数据库名?参数
  2. username/password:数据库用户名和密码。
  3. 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 语句

七、注意事项

  1. 依赖问题:确保 pom.xml 中添加了对应数据库的驱动依赖(如 MySQL、PostgreSQL)。
  2. 安全性:生产环境建议将密码等敏感信息通过环境变量或配置中心管理。
  3. 连接参数:URL 中的参数(如 serverTimezone)需根据数据库版本调整。

如果需要更具体的配置示例或遇到问题,请告诉我!

### Java 使用 YML 文件配置数据库连接 在 Spring Boot 中,可以通过 `application.yml` 配置文件来设置数据库连接的相关参数。以下是基于提供的引用内容以及常见实践的一个完整示例。 #### 数据库连接基本配置 对于 MySQL 和 Oracle 的 JDBC 连接,可以分别按照以下方式进行配置: ##### MySQL 数据库配置 ```yaml spring: datasource: url: jdbc:mysql://localhost:3306/mydb?useSSL=false&serverTimezone=UTC username: root password: root driver-class-name: com.mysql.cj.jdbc.Driver ``` 上述配置中,`url` 定义了数据库的地址和名称,`username` 和 `password` 是登录凭证,而 `driver-class-name` 明确指定了使用的 JDBC 驱动程序[^2]。 ##### Oracle 数据库配置 针对 Oracle 数据库,有多种 URL 格式可以选择。如果通过服务名连接,则可按如下方式定义: ```yaml spring: datasource: url: jdbc:oracle:thin:@your-server-ip:1521/your-service-name username: your-username password: your-password driver-class-name: oracle.jdbc.driver.OracleDriver ``` 这里需要注意的是,在 URL 中 `/` 表示使用服务名的方式;如果是 SID 则应替换为冒号 `:`[^4]。 #### MyBatis 整合配置 当项目引入了 MyBatis 框架时,还需要额外指定 Mapper 接口的位置以及其他映射规则。例如: ```yaml mybatis: mapper-locations: classpath*:mapper/*.xml type-aliases-package: com.example.yourproject.model.entity ``` 此部分设置了 XML 映射文件所在的路径以及实体类包位置以便自动扫描加载[^3]。 #### 密码加密处理 (可选) 为了增强安全性,有时会考虑对敏感信息如密码字段进行加密存储并解密读取。利用 Jasypt 库可以在不修改业务逻辑的前提下完成这一需求[^5]: ```yaml encryptor: bean: jasyptStringEncryptor spring: datasource: password: ENC(encryptedPasswordHere) ``` 以上展示了如何在一个典型的 Spring Boot 工程里借助 YAML 来高效便捷地管理不同类型的 RDBMS 设置及其扩展功能。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值