How gregorsomething/compilebaseconnector works
This is a Java JDBC repository code generator: developers declare repository interfaces with query and statement annotations, and a compile-time processor generates typed implementations. At runtime, RepositoryProvider instantiates those implementations against a Database, which executes prepared SQL through JDBC. README capabilities also include custom and complex result mapping, MariaDB/Postgres providers, repository initialization SQL, and optional transactions. The sampled code supports the processor, query mapping, parameter handling, provider, and database edges; statement and transaction wiring is only represented where documented or evident from the tree.
Main entry points: RepositoryProcessor.java Repository processor · Repository.java Repository interface · QuerySubProcessor.java Query processor · TypeMapperCodeGenerator.java Result mapping generator
Components 22
Repository declarations
- Repository interface
src/main/java/me/gregorsomething/database/annotations/Repository.java - Query annotation
src/main/java/me/gregorsomething/database/annotations/Query.java - Statement annotation
src/main/java/me/gregorsomething/database/annotations/Statement.java - Custom type readers
src/main/java/me/gregorsomething/database/annotations/Repository.java
Compile-time generation
- Repository processor
src/main/java/me/gregorsomething/database/processor/RepositoryProcessor.java - Query processor
src/main/java/me/gregorsomething/database/processor/QuerySubProcessor.java - Statement processor
src/main/java/me/gregorsomething/database/processor/StatementSubProcessor.java - SQL parameters
src/main/java/me/gregorsomething/database/processor/paramater/ParameterProcessor.java - Result mapping generator
src/main/java/me/gregorsomething/database/processor/types/TypeMapperCodeGenerator.java - Type mapper resolver
src/main/java/me/gregorsomething/database/processor/types/TypeMapperResolver.java - Complex type resolver
src/main/java/me/gregorsomething/database/processor/types/ComplexTypeResolver.java
Runtime repositories
- Generated implementation
src/main/java/me/gregorsomething/database/processor/RepositoryProcessor.java - Repository provider
src/main/java/me/gregorsomething/database/RepositoryProvider.java - Transaction contracts
src/main/java/me/gregorsomething/database/Transactional.java - Transaction
src/main/java/me/gregorsomething/database/Transaction.java
Database connectivity
- Database API
src/main/java/me/gregorsomething/database/Database.java - DataSource database
src/main/java/me/gregorsomething/database/DataSourceDatabase.java - MariaDB provider
src/main/java/me/gregorsomething/database/MariaDBDatabaseProvider.java - Postgres provider
src/main/java/me/gregorsomething/database/PostgresDatabaseProvider.java - Transactional database
src/main/java/me/gregorsomething/database/TransactionalDatabase.java - JDBC database
Other components
- Repository developer
Connections 27
- Repository developer → Repository interface: defines
- Repository developer → Query annotation: declares queries
- Repository developer → Statement annotation: declares statements
- Repository interface → Repository processor: processed by
- Query annotation → Repository processor: annotates methods
- Statement annotation → Repository processor: annotates methods
- Repository processor → Query processor: dispatches queries
- Repository processor → Statement processor: dispatches statements
- Query processor → SQL parameters: resolves placeholders
- Statement processor → SQL parameters: resolves placeholders
- Query processor → Result mapping generator: generates mapping
- Result mapping generator → Type mapper resolver: looks up types
- Result mapping generator → Complex type resolver: resolves complex types
- Repository interface → Custom type readers: configures readers
- Custom type readers → Type mapper resolver: provides mappings
- Repository processor → Generated implementation: writes implementation
- Repository provider → Generated implementation: instantiates
- Repository provider → Database API: supplies database
- Generated implementation → Database API: executes SQL
- Generated implementation → Transaction: creates transactions
- Transaction contracts → Repository processor: enables transaction support
- Transaction → Transactional database: uses connection
- Transactional database → JDBC database: executes SQL
- MariaDB provider → DataSource database: creates
- Postgres provider → DataSource database: creates
- DataSource database → JDBC database: uses JDBC
- Database API → JDBC database: queries and executes