生活知识集
第二套高阶模板 · 更大气的阅读体验

Spring项目中如何配置数据库连接池

发布时间:2025-12-12 01:32:30 阅读:293 次

做Java开发时,ref="/tag/1/" style="color:#3D6345;font-weight:bold;">数据连接是个高频操作。每次请求都新建连接,不仅慢还容易把数据库拖垮。这时候就得靠连接来帮忙——它像一个“停车场”,提前准备好一批数据库连接,用的时候直接取,用完放回,效率高又稳定。

为什么要用连接池

想象一下你每天上班都要临时造一辆车来开车,那得多麻烦?连接池就是帮你把车提前造好、停在楼下,随时可以开走。Spring 默认不自带连接池,但整合起来非常方便,主流的有 HikariCP、Druid、Tomcat JDBC 等。

使用HikariCP配置连接池(推荐)

HikariCP 是目前性能最强、最轻量的连接池之一,Spring Boot 2.x 开始默认集成的就是它。只需要在 pom.xml 中引入依赖:

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-jdbc</artifactId>
</dependency>

<dependency>
    <groupId>com.zaxxer</groupId>
    <artifactId>HikariCP</artifactId>
</dependency>

然后在 application.yml 中配置数据源:

spring:
  datasource:
    url: jdbc:mysql://localhost:3306/test_db?useUnicode=true&characterEncoding=utf8
    username: root
    password: 123456
    driver-class-name: com.mysql.cj.jdbc.Driver
    hikari:
      maximum-pool-size: 20
      minimum-idle: 5
      connection-timeout: 30000
      idle-timeout: 600000
      max-lifetime: 1800000

这些参数控制着“停车场”的大小和管理规则:最大连接数20个,最少留5个待命,连接最长存活30分钟,空闲超过10分钟就回收。

如果想换 Druid 连接池

阿里开源的 Druid 不仅是连接池,还带监控功能,适合需要排查SQL性能问题的场景。先替换依赖:

<dependency>
    <groupId>com.alibaba</groupId>
    <artifactId>druid-spring-boot-starter</artifactId>
    <version>1.2.16</version>
</dependency>

配置方式稍有不同:

spring:
  datasource:
    url: jdbc:mysql://localhost:3306/test_db?useUnicode=true&characterEncoding=utf8
    username: root
    password: 123456
    type: com.alibaba.druid.pool.DruidDataSource
    druid:
      initial-size: 5
      min-idle: 5
      max-active: 20
      stat-view-servlet:
        enabled: true
        url-pattern: /druid/*
        login-username: admin
        login-password: admin

加上这些配置后,启动项目访问 /druid/ 页面就能看到连接情况、SQL执行统计,跟汽车仪表盘一样直观。

小贴士:别忘了驱动依赖

不管选哪个连接池,数据库驱动不能少。MySQL 8.x 要用 cj 版本驱动,如果是 PostgreSQL 或 Oracle,记得改 driver-class-name 和依赖包。

实际开发中,连接池就像厨房里的锅碗瓢盆——不用每次做饭都去烧陶土做碗,而是提前备好一套,用完洗了再用。合理配置能让你的应用响应更快、更稳,也不容易被并发压垮。