Druid is Alibaba's open-source high-performance JDBC connection pool and SQL parser for Java. Version: 1.2.29-SNAPSHOT.
mvn clean install # Full build with tests
mvn test -pl core # Core module tests only
mvn test -pl core -Dtest=<TestClass> # Single test classRequirements: Java 8+ JDK, Apache Maven 3.6+
core/— Main library: connection pool, SQL parser, filter chain, wall security, monitoringdruid-spring-boot-starter/— Spring Boot 2.x auto-configurationdruid-spring-boot-3-starter/— Spring Boot 3.x auto-configurationdruid-spring-boot-4-starter/— Spring Boot 4.x auto-configurationdruid-admin/— Cluster monitoring admindruid-wrapper/— Wrapper utilitiesopenspec/— Architecture specs and change documentation
core/src/main/java/com/alibaba/druid/pool/— Connection pool (DruidDataSource)core/src/main/java/com/alibaba/druid/sql/dialect/— 30 SQL dialect parserscore/src/main/java/com/alibaba/druid/sql/parser/— Core parser infrastructurecore/src/main/java/com/alibaba/druid/sql/ast/— AST node classescore/src/main/java/com/alibaba/druid/filter/— Filter chain implementationscore/src/main/java/com/alibaba/druid/wall/— SQL firewall (WallFilter)core/src/main/java/com/alibaba/druid/stat/— Monitoring statistics
- Tests are in
core/src/test/java/com/alibaba/druid/bvt/(Black-box Verification Test) - SQL dialect tests use resource files:
core/src/test/resources/bvt/parser/<dialect>/*.txt - Testing framework: JUnit 5 (migrated from JUnit 4)
- Surefire pattern:
**/bvt/**/*.java
Each dialect in sql/dialect/<name>/ follows this structure:
<Name>Lexer— Lexical analyzer<Name>ExprParser— Expression parser<Name>StatementParser— Statement parser<Name>OutputVisitor— SQL output visitor<Name>ASTVisitor— AST visitor interface<Name>SchemaStatVisitor— Schema statistics visitor- Config:
META-INF/druid/parser/<name>/dialect.propertiesandbuiltin_datatypes
- Java 8 compatible (source level 8)
- Checkstyle enforced:
src/checkstyle/druid-checks.xml - Visitor pattern for AST traversal
- Filter-Chain (Chain of Responsibility) for JDBC interception