This directory contains runnable examples demonstrating RowQuery features.
All examples use SQLite with in-memory or temporary databases, so no external database setup is required.
# Run an example
python examples/01_basic_query.pyBasic query execution using Engine and SQLRegistry. Shows:
- Creating a connection
- Loading SQL files
fetch_one(),fetch_all(),fetch_scalar()methods
Mapping query results to Python objects. Shows:
- Dataclass mapping
- Pydantic model mapping
- Using
ModelMapper
Complex object graph reconstruction from joined queries. Shows:
- Aggregate mapping with collections
- Single-pass O(n) reconstruction
- The
aggregate()DSL
Transaction management. Shows:
- Context manager usage
- Automatic rollback on error
- Manual commit/rollback
Async/await support. Shows:
AsyncEngineusage- Async query execution
- Async transactions
Database migration management. Shows:
MigrationManagerusage- Version tracking
- Migration application
Repository pattern for DDD. Shows:
- Using
Repositorybase class - Entity persistence
- Query encapsulation
These examples use SQLite for simplicity. To use with other databases:
# PostgreSQL
config = ConnectionConfig(
driver="postgresql",
host="localhost",
port=5432,
database="mydb",
user="user",
password="pass"
)
# MySQL
config = ConnectionConfig(
driver="mysql",
host="localhost",
port=3306,
database="mydb",
user="user",
password="pass"
)
# Oracle
config = ConnectionConfig(
driver="oracle",
host="localhost",
port=1521,
service_name="ORCLPDB1",
user="user",
password="pass"
)