Add basic PGSQL connection

This commit is contained in:
2024-01-28 21:48:03 -03:00
parent 8ee6cbefbd
commit 297786133d
4 changed files with 89 additions and 2 deletions

50
source/db/db.d Normal file
View File

@@ -0,0 +1,50 @@
module db.db;
import slf4d;
import ddbc.core;
enum DBConnector {
DB_MYSQL,
DB_PGSQL,
DB_SQLITE,
}
struct DBSettings {
DBConnector connector;
string host;
ushort port;
string username;
string password;
string dbname;
}
class DB {
protected DBSettings m_settings;
protected DataSource m_ds;
protected Connection m_conn;
shared this(DBSettings settings) {
this.m_settings = settings;
}
static shared(DB) getDB(DBSettings settings) {
switch (settings.connector) {
case DBConnector.DB_PGSQL:
import db.pgsql;
debugF!"DB type is PostgreSQL";
return new shared PostgresDB(settings);
default:
throw new Exception("DB not supported");
}
}
protected abstract DataSource getDataSource();
void connect() {
this.m_ds = this.getDataSource();
this.m_conn = this.m_ds.getConnection();
}
}