Java 数据源类型清单

📅 2026/7/30 4:20:40
Java 数据源类型清单
在 Java 开发中“数据源”DataSource通常指JDBC 数据源用于管理数据库连接池。但随着微服务和云原生的发展数据源的概念已扩展到响应式数据源和多模型数据源。以下是按使用场景分类的完整清单及选型建议一、主流 JDBC 连接池数据源最常用这是日常开发中最核心的数据源类型用于传统同步阻塞式 JDBC。数据源名称类型/特点适用场景关键依赖Maven GroupIdHikariCP性能极佳字节码精简并发高Spring Boot 2.x 默认高并发微服务com.zaxxer:HikariCPDruid阿里出品集成监控、SQL 防火墙、日志需要SQL审计、慢查询监控的生产环境com.alibaba:druid-spring-boot-starterTomcat JDBC兼容性极好支持高并发嵌入在 Tomcat 容器中的 Web 应用org.apache.tomcat:tomcat-jdbcC3P0经典老牌自动回收空闲连接旧版 Hibernate 项目新项目不推荐com.mchange:c3p0DBCP2Apache 出品配置丰富老旧系统维护新项目不推荐org.apache.commons:commons-dbcp2二、云原生与多语言数据源含服务发现针对 Kubernetes 环境和数据库服务发现场景。GridGain JDBC支持通过 Kubernetes API 动态发现服务端节点变化适合云原生弹性场景。MariaDB 驱动自带的故障转移数据源支持自动识别主从切换对云数据库如 RDS友好。三、响应式/异步非阻塞数据源用于WebFlux、Vert.x或Akka等响应式编程栈基于 Netty 实现不阻塞线程。数据源名称协议/驱动适用场景R2DBC实现如r2dbc-mysql响应式关系型数据库连接Spring Data R2DBC高吞吐非阻塞 I/OVert.x PostgreSQL Client原生异步驱动使用 Vert.x 框架的异步应用Async Driver (Aerospike/Redis)专有异步协议对 NoSQL 做异步存取四、多模型与特殊用途数据源多模型 JDBC如ArcadeDB、OrientDB同时支持文档、图和键值 API通过统一 JDBC 接口访问。虚拟/联邦数据源如Apache Calcite的ArrayDataSource将内存数组、CSV 或 JSON 伪装成数据库表用于单元测试或数据联邦查询。JNDI 数据源javax.sql.DataSource通过 JNDI 目录服务获取容器如 WebLogic、WildFly管理的连接池常用于企业级老旧 EJB 项目。五、配置关键差异速查HikariCP推荐使用maximum-pool-size默认10和connection-timeout默认30s无需配置maxActive。Druid需配置filters: stat,wall开启监控和防火墙启用logSlowSql用于性能调优。响应式 R2DBC连接字符串以r2dbc:开头如r2dbc:mysql://localhost/test不使用driver-class-name。六、选型速成建议Spring Boot 新项目HikariCP默认无需额外配置。需要监控和 SQL 拦截Druid配合其内置控制台。WebFlux 响应式项目R2DBC系列如r2dbc-postgresql。Kubernetes 弹性扩缩容GridGain JDBC或MariaDB 驱动开启enableReplication。