8 数据库连接
8.1 配置数据库连接
在Spring Boot中配置数据库连接主要涉及添加数据库驱动依赖和设置数据库连接属性。
-
添加依赖:
- 对于Maven项目,在
pom.xml
中添加数据库驱动的依赖。 - 对于Gradle项目,在
build.gradle
中添加数据库驱动的依赖。
- 对于Maven项目,在
-
配置连接属性:
- 在
application.properties
或application.yml
中设置数据库连接的URL、用户名、密码等。
- 在
示例配置(application.properties):
properties
spring.datasource.url=jdbc:mysql://localhost:3306/your_db
spring.datasource.username=your_username
spring.datasource.password=your_password
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
8.2 使用DataSource
DataSource接口用于获取数据库连接,Spring Boot自动配置DataSource。
-
自动配置:
- Spring Boot根据提供的连接属性自动配置DataSource。
-
自定义DataSource:
- 可以通过实现
DataSource
接口或使用Spring Boot的@Configuration
注解自定义DataSource配置。
- 可以通过实现
-
连接池:
- Spring Boot默认使用HikariCP作为连接池,也可以配置其他连接池如Druid。
8.3 集成数据库连接池
数据库连接池提高资源利用率和应用程序性能。
-
HikariCP:
- Spring Boot默认使用HikariCP作为数据库连接池。
-
配置连接池:
- 在配置文件中设置连接池参数,如最大连接数、最小空闲连接数等。
示例配置(application.yml):
yaml
spring:
datasource:
url: jdbc:mysql://localhost:3306/your_db?useSSL=false&serverTimezone=UTC
username: your_username
password: your_password
driver-class-name: com.mysql.cj.jdbc.Driver
hikari:
maximum-pool-size: 20
minimum-idle: 10
idle-timeout: 30000
max-lifetime: 1800000
connection-timeout: 30000
8.4 集成Druid连接池
Druid连接池是一个轻量级且功能丰富的数据库连接池。
-
添加Druid依赖:
- 在项目的
pom.xml
或build.gradle
中添加Druid的依赖。
- 在项目的
-
配置Druid连接池:
- 在
application.yml
或application.properties
中配置Druid连接池的参数。
- 在
Druid配置示例:
yaml
spring:
datasource:
type: com.alibaba.druid.pool.DruidDataSource
druid:
url: jdbc:mysql://localhost:3306/your_db?useSSL=false&serverTimezone=UTC
username: your_username
password: your_password
driver-class-name: com.mysql.cj.jdbc.Driver
initial-size: 10
min-idle: 5
max-active: 20
max-wait: 60000
time-between-eviction-runsMillis: 60000
min-evictable-idle-timeMillis: 300000
validation-query: SELECT 1 FROM DUAL
test-while-idle: true
test-on-borrow: false
test-on-return: false
pool-prepared-statements: true
max-pool-prepared-statement-per-connection-size: 20
- Druid监控 :
- Druid提供了监控页面,可以监控连接池状态和SQL执行情况。
Druid监控配置示例:
yaml
spring:
datasource:
druid:
stat-view-servlet:
enabled: true
url-pattern: /druid/*
login-username: druid
login-password: druid
reset-enable: true
通过合理配置数据库连接和连接池,Spring Boot应用程序能够高效、稳定地与数据库进行交互。无论是使用Spring Boot默认的HikariCP连接池,还是集成如Druid这样的第三方连接池,Spring Boot都提供了简单明了的配置方式,以适应不同的生产环境和性能需求。