MantisBase v0.3.4
Loading...
Searching...
No Matches
mb::Database Class Reference

Database connection and session management. More...

#include <database.h>

Public Member Functions

 Database ()
 Construct database instance.
 
 ~Database ()
 Destructor (disconnects from database).
 
bool connect (const std::string &conn_str)
 Connect to database and initialize connection pool.
 
const std::string & connectionStr () const
 
void disconnect ()
 Close all database connections and destroy connection pool.
 
bool createSysTables () const
 Create system tables (mb_tables, mb_admins, etc.).
 
std::shared_ptr< soci::session > session () const
 Get a database session from the connection pool.
 
soci::connection_pool & connectionPool () const
 Get access to the underlying connection pool.
 
bool isConnected () const
 Check if database is connected.
 

Detailed Description

Database connection and session management.

Handles database connections, connection pooling, and provides session management for executing queries. Supports SQLite (default) and PostgreSQL.

db.connect("dbname=mantis user=postgres password=pass");
auto session = db.session();
*session << "SELECT * FROM users", soci::into(rows);
Database connection and session management.
Definition database.h:39
bool connect(const std::string &conn_str)
Connect to database and initialize connection pool.
Definition database.cpp:24
std::shared_ptr< soci::session > session() const
Get a database session from the connection pool.
Definition database.cpp:204

Constructor & Destructor Documentation

◆ Database()

mb::Database::Database ( )

Construct database instance.

◆ ~Database()

mb::Database::~Database ( )

Destructor (disconnects from database).

Member Function Documentation

◆ connect()

bool mb::Database::connect ( const std::string &  conn_str)

Connect to database and initialize connection pool.

Parameters
conn_strConnection string (format depends on database type)
  • SQLite: path to database file or empty for default
  • PostgreSQL: "dbname=name host=host port=5432 user=user password=pass"
Returns
true if connection successful, false otherwise

◆ connectionPool()

soci::connection_pool & mb::Database::connectionPool ( ) const

Get access to the underlying connection pool.

Returns
Reference to soci::connection_pool

◆ connectionStr()

const std::string & mb::Database::connectionStr ( ) const

◆ createSysTables()

bool mb::Database::createSysTables ( ) const

Create system tables (mb_tables, mb_admins, etc.).

Returns
true if migration successful, false otherwise

◆ disconnect()

void mb::Database::disconnect ( )

Close all database connections and destroy connection pool.

◆ isConnected()

bool mb::Database::isConnected ( ) const

Check if database is connected.

Returns
true if connected, false otherwise

◆ session()

std::shared_ptr< soci::session > mb::Database::session ( ) const

Get a database session from the connection pool.

Returns
Shared pointer to soci::session
auto sql = db.session();
*sql << "SELECT * FROM users WHERE id = :id", soci::use(id), soci::into(row);

The documentation for this class was generated from the following files: