百科.dev
全部条目在线工具AI 编程趋势榜开源项目技术资讯提交条目
登录
< 返回工具列表
D

druid

> 编程语言
开源

阿里云计算平台DataWorks(https://help.aliyun.com/document_detail/137663.html) 团队出品,为监控而生的数据库连接池

28.2K stars0 点赞1 次浏览
访问官网GitHub

工具介绍

阿里云计算平台DataWorks(https://help.aliyun.com/document_detail/137663.html) 团队出品,为监控而生的数据库连接池

Alibaba Druid

English | 中文


Druid 是阿里巴巴开源的高性能数据库连接池和 SQL 解析器。它将 JDBC 连接池、SQL 解析分析、安全防护和监控统计深度整合为一体,是 Java 生态中功能最全面的数据库中间件之一。

核心特性

功能领域 说明
JDBC 连接池 高性能、可监控的连接池实现 DruidDataSource,支持物理连接预热、PSCache、KeepAlive 等高级特性
SQL 解析器 支持 30 种 SQL 方言的完整解析器,生成 AST 抽象语法树,支持 SQL 格式化、改写和分析
SQL 防火墙 基于 AST 的 WallFilter SQL 安全防护,可拦截 SQL 注入、危险操作等
监控统计 内置 StatFilter 实时采集 SQL 执行统计、连接池状态,提供 Web 监控页面
Filter 扩展 可插拔的 Filter-Chain 架构,支持日志、加密、统计等扩展
Spring Boot 集成 提供 Spring Boot 2.x / 3.x / 4.x Starter,开箱即用
高可用 HighAvailableDataSource 支持多数据源负载均衡、健康检查和故障切换

快速开始

Maven 依赖

xml
<dependency>
    <groupId>com.alibaba</groupId>
    <artifactId>druid</artifactId>
    <version>1.2.24</version>
</dependency>

Spring Boot 项目(推荐)

根据 Spring Boot 版本选择对应 Starter:

Spring Boot 版本 Starter
2.x druid-spring-boot-starter
3.x druid-spring-boot-3-starter
4.x druid-spring-boot-4-starter
xml

<dependency>
    <groupId>com.alibaba</groupId>
    <artifactId>druid-spring-boot-3-starter</artifactId>
    <version>1.2.24</version>
</dependency>
yaml
# application.yml
spring:
  datasource:
    url: jdbc:mysql://localhost:3306/mydb
    username: root
    password: password
    druid:
      initial-size: 5
      max-active: 20
      min-idle: 5
      max-wait: 60000
      # 启用 Filter
      filter:
        stat:
          enabled: true
          log-slow-sql: true
          slow-sql-millis: 2000
        wall:
          enabled: true

直接使用 DruidDataSource

java
DruidDataSource dataSource = new DruidDataSource();
dataSource.setUrl("jdbc:mysql://localhost:3306/mydb");
dataSource.setUsername("root");
dataSource.setPassword("password");
dataSource.setInitialSize(5);
dataSource.setMaxActive(20);
dataSource.setMinIdle(5);
dataSource.init();

// 使用连接
try (Connection conn = dataSource.getConnection()) {
    // 执行 SQL
}

SQL 解析器

java
// 解析 SQL
String sql = "SELECT id, name FROM users WHERE age > 18 ORDER BY name";
List<SQLStatement> stmts = SQLUtils.parseStatements(sql, DbType.mysql);

// 格式化 SQL
String formatted = SQLUtils.format(sql, DbType.mysql);

// 获取表信息
SchemaStatVisitor visitor = SQLUtils.createSchemaStatVisitor(DbType.mysql);
stmts.get(0).accept(visitor);
System.out.println("Tables: " + visitor.getTables());
System.out.println("Columns: " + visitor.getColumns());

项目模块

druid/
├── core/                           # 核心库(连接池、SQL 解析、安全、监控)
├── druid-spring-boot-starter/      # Spring Boot 2.x 自动配置
├── druid-spring-boot-3-starter/    # Spring Boot 3.x 自动配置
├── druid-spring-boot-4-starter/    # Spring Boot 4.x 自动配置
├── druid-wrapper/                  # 包装工具
├── druid-admin/                    # 集群监控管理端
└── doc/                            # 文档

SQL 方言支持

Druid SQL 解析器支持 30 种数据库方言,每种方言都提供完整的 Lexer、Parser、AST 和 Visitor 实现:

| 分类 | 支持的数据库 | |------|-----------…

Issues· 2343 开放

查看全部 Issues在 GitHub 打开
  • #6731

    [错误] 当 char == 256 (U+0100) 时, MySqlLexer.isIdentifierChar 会抛出数组下标越界异常

    更新于 2026年9月29日
  • #6033

    [BUG] 在解析 HiveSQL 时,collect_list 和 collect_set 函数没有被识别为聚合函数

    Bug更新于 2026年9月22日
  • #6729

    [BUG] springboot4.1.0 + spring-cloud-alibaba2025.1.0.0 创建连接时出现 RuntimeException 错误

    更新于 2026年9月22日
  • #6668

    spring boot 4.1+spring cloud alibba 2025.1.0.0 nacos 刷新失败

    更新于 2026年9月22日
  • #6722

    [BUG] Hive SQLUtils.format 在 SELECT 项之前重复并合并注释

    更新于 2026年9月18日
  • #6720

    [BUG] SQLBinaryOpExpr 未对低优先级的 OR 运算符加括号,导致 SQL 的语义错误

    更新于 2026年9月16日
  • #6702

    [BUG] 对于 Oracle 的解析过于宽松

    更新于 2026年9月9日
  • #6712

    Oracle 的 with insert 为什么要解析出两个语句,初衷是什么?

    更新于 2026年8月31日
  • #6711

    [BUG] ODPS 在解析连续 INNER JOIN 时将 INNER 错误识别为别名

    更新于 2026年8月30日
  • #6710

    漏洞上报问题

    更新于 2026年8月28日

> 标签

Java

暂无评论,来聊聊你的看法吧

> 工具信息

发布日期2026年8月1日
最后更新2026年9月30日
分类编程语言
定价开源

> 相关工具

T
TypeScript
JavaScript 的超集,为前端与全栈提供静态类型
P
Python
通用编程语言,广泛用于 Web、数据与 AI
G
Go
Google 推出的简洁高效系统语言