MST

星途 面试题库

面试题:Java中常见的JDBC连接池有哪些,简述其配置步骤

请列举至少两种Java中常见的JDBC连接池,并详细说明其中一种连接池在项目中的配置步骤,包括引入依赖、配置文件的编写等。
48.1万 热度难度
编程语言Java

知识考点

AI 面试

面试题答案

一键面试
  1. 常见的JDBC连接池
    • HikariCP:轻量级、高性能的连接池,旨在快速处理大量请求。它在性能上表现出色,配置简单,是Spring Boot默认的连接池。
    • C3P0:是一个开源的JDBC连接池,它实现了数据源和JNDI绑定,支持JDBC3规范和JDBC2的标准扩展。
    • Druid:阿里巴巴开源的连接池,功能强大,除了具备一般连接池的功能外,还提供SQL监控、日志、防御SQL注入等特性。
  2. 以HikariCP在Spring Boot项目中配置为例
    • 引入依赖: 在pom.xml文件中添加如下依赖:
<dependency>
    <groupId>com.zaxxer</groupId>
    <artifactId>HikariCP</artifactId>
</dependency>
<dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql - connector - java</artifactId>
</dependency>

第一个依赖引入HikariCP连接池,第二个依赖引入MySQL数据库的驱动(假设使用MySQL数据库)。

  • 配置文件编写: 在application.properties文件中添加如下配置:
spring.datasource.url=jdbc:mysql://localhost:3306/yourdatabase
spring.datasource.username=root
spring.datasource.password=yourpassword
spring.datasource.driver - class - name=com.mysql.cj.jdbc.Driver
spring.datasource.hikari.maximum - pool - size=10
spring.datasource.hikari.minimum - idle=5
spring.datasource.hikari.idle - timeout=600000
spring.datasource.hikari.connection - timeout=30000
spring.datasource.hikari.validation - timeout=5000

其中:

  • spring.datasource.url指定数据库的连接地址和数据库名。
  • spring.datasource.usernamespring.datasource.password分别是数据库的用户名和密码。
  • spring.datasource.driver - class - name指定数据库驱动类。
  • spring.datasource.hikari.maximum - pool - size设置连接池的最大连接数。
  • spring.datasource.hikari.minimum - idle设置连接池的最小空闲连接数。
  • spring.datasource.hikari.idle - timeout设置连接在池中保持空闲而不被驱逐的最长时间(毫秒)。
  • spring.datasource.hikari.connection - timeout设置从池中获取连接的最大等待时间(毫秒)。
  • spring.datasource.hikari.validation - timeout设置连接有效性验证的超时时间(毫秒)。

如果使用application.yml文件,配置如下:

spring:
  datasource:
    url: jdbc:mysql://localhost:3306/yourdatabase
    username: root
    password: yourpassword
    driver - class - name: com.mysql.cj.jdbc.Driver
    hikari:
      maximum - pool - size: 10
      minimum - idle: 5
      idle - timeout: 600000
      connection - timeout: 30000
      validation - timeout: 5000