DatabaseManager class
Core database manager with transaction support and prepared statement caching.
Public types
- struct CacheStats
- Get cache statistics.
- using QueryCallback = std::function<void(const PreparedStatement&)>
- using TransactionFunc = std::function<DatabaseResult<void>(DatabaseManager&)>
Constructors, destructors, conversion operators
- DatabaseManager()
- Constructor.
- ~DatabaseManager()
- Destructor.
Public functions
- auto execute(const std::string& sql) -> DatabaseResult<void>
- Execute a query with automatic connection management.
- auto prepare(const std::string& sql) -> DatabaseResult<std::shared_ptr<PreparedStatement>>
- Prepare a statement with caching and LRU eviction.
- auto execute_prepared(std::shared_ptr<PreparedStatement> stmt, QueryCallback callback = nullptr) -> DatabaseResult<int>
- Execute a prepared statement.
- auto begin_transaction() -> DatabaseResult<void>
- Begin a transaction.
- auto commit_transaction() -> DatabaseResult<void>
- Commit the current transaction.
- auto rollback_transaction() -> DatabaseResult<void>
- Rollback the current transaction.
- auto with_transaction(TransactionFunc func) -> DatabaseResult<void>
- Execute a function within a transaction with automatic rollback on failure.
- void clear_statement_cache()
- Clear the prepared statement cache.
- auto get_cache_stats() const -> CacheStats
- auto in_transaction() const -> bool
- Check if currently in a transaction.
Function documentation
DatabaseResult<void> liarsdice:: database:: DatabaseManager:: execute(const std::string& sql)
Execute a query with automatic connection management.
| Parameters | |
|---|---|
| sql | SQL query to execute |
| Returns | Result or error |
DatabaseResult<std::shared_ptr<PreparedStatement>> liarsdice:: database:: DatabaseManager:: prepare(const std::string& sql)
Prepare a statement with caching and LRU eviction.
| Parameters | |
|---|---|
| sql | SQL statement to prepare |
| Returns | Prepared statement or error |
DatabaseResult<int> liarsdice:: database:: DatabaseManager:: execute_prepared(std::shared_ptr<PreparedStatement> stmt,
QueryCallback callback = nullptr)
Execute a prepared statement.
| Parameters | |
|---|---|
| stmt | Prepared statement |
| callback | Optional callback for each row |
| Returns | Result or error |
DatabaseResult<void> liarsdice:: database:: DatabaseManager:: begin_transaction()
Begin a transaction.
| Returns | Result or error |
|---|
DatabaseResult<void> liarsdice:: database:: DatabaseManager:: commit_transaction()
Commit the current transaction.
| Returns | Result or error |
|---|
DatabaseResult<void> liarsdice:: database:: DatabaseManager:: rollback_transaction()
Rollback the current transaction.
| Returns | Result or error |
|---|
DatabaseResult<void> liarsdice:: database:: DatabaseManager:: with_transaction(TransactionFunc func)
Execute a function within a transaction with automatic rollback on failure.
| Parameters | |
|---|---|
| func | Function to execute |
| Returns | Result or error |