first commit

This commit is contained in:
2026-01-15 22:38:46 +03:00
commit a70e9b7a79
58 changed files with 3980 additions and 0 deletions

View File

@@ -0,0 +1,115 @@
package com.andrewkydev.database.config;
import com.andrewkydev.database.schema.SqlDialect;
public final class DatabaseConfig {
private final SqlDialect dialect;
private final String host;
private final int port;
private final String database;
private final String username;
private final String password;
private final String adminDatabase;
private final PoolConfig pool;
private final boolean autoTransactions;
public DatabaseConfig(
SqlDialect dialect,
String host,
int port,
String database,
String username,
String password,
String adminDatabase,
PoolConfig pool,
boolean autoTransactions
) {
this.dialect = dialect;
this.host = host;
this.port = port;
this.database = database;
this.username = username;
this.password = password;
this.adminDatabase = adminDatabase;
this.pool = pool;
this.autoTransactions = autoTransactions;
}
public SqlDialect dialect() {
return dialect;
}
public String host() {
return host;
}
public int port() {
return port;
}
public String database() {
return database;
}
public String username() {
return username;
}
public String password() {
return password;
}
public String adminDatabase() {
return adminDatabase;
}
public PoolConfig pool() {
return pool;
}
public boolean autoTransactions() {
return autoTransactions;
}
public static final class PoolConfig {
private final int maxPoolSize;
private final int minIdle;
private final long connectionTimeoutMs;
private final long idleTimeoutMs;
private final long maxLifetimeMs;
public PoolConfig(
int maxPoolSize,
int minIdle,
long connectionTimeoutMs,
long idleTimeoutMs,
long maxLifetimeMs
) {
this.maxPoolSize = maxPoolSize;
this.minIdle = minIdle;
this.connectionTimeoutMs = connectionTimeoutMs;
this.idleTimeoutMs = idleTimeoutMs;
this.maxLifetimeMs = maxLifetimeMs;
}
public int maxPoolSize() {
return maxPoolSize;
}
public int minIdle() {
return minIdle;
}
public long connectionTimeoutMs() {
return connectionTimeoutMs;
}
public long idleTimeoutMs() {
return idleTimeoutMs;
}
public long maxLifetimeMs() {
return maxLifetimeMs;
}
}
}