This project is a SQL database abstraction layer that provides a consistent object-oriented interface for interacting with multiple relational database systems. It includes a driver wrapper to standardize connections and result sets, a fluent query builder for constructing portable SQL statements, and a type mapper for converting database-specific data types into native application types and vice versa.
The library enables programmatic schema management through a schema manager that can introspect database metadata, model structures as objects, and generate the SQL required to migrate between different schema versions. It also supports a middleware-based execution pipeline, allowing the interception of database operations for logging or profiling.
The system covers a broad range of database capabilities, including portable SQL generation for various dialects, transaction management with support for savepoints and isolation levels, and security primitives such as prepared statements and parameter binding to prevent SQL injection. It also provides utilities for result set normalization and CRUD operation helpers.
The project includes a command-line interface for executing raw SQL statements directly against database connections.