Class DatabaseLoader

java.lang.Object
com.github.darksoulq.abyssallib.common.database.DatabaseLoader

public class DatabaseLoader extends Object
A factory utility class responsible for loading and initializing database instances.

This class maps configuration keys to specific database implementations for Relational (SQL), MongoDB, and Redis backends.

  • Constructor Details

    • DatabaseLoader

      public DatabaseLoader()
  • Method Details

    • loadRelational

      public static AbstractDatabase loadRelational(Config config, String basePath, String type) throws SQLException
      Initializes and connects to a relational database based on the provided configuration.

      Supported types include: mysql, mariadb, postgres/postgresql, sqlite, and h2.

      Parameters:
      config - The Config instance containing database settings.
      basePath - The root path in the configuration where SQL settings are stored.
      type - The type of database to load (e.g., "mysql", "sqlite", "postgres").
      Returns:
      An initialized and connected AbstractDatabase instance.
      Throws:
      SQLException - If a connection error occurs during initialization or if the database type is unknown.
    • loadMongo

      public static Database loadMongo(Config config, String basePath)
      Initializes and connects to a MongoDB database.
      Parameters:
      config - The Config instance containing MongoDB settings.
      basePath - The configuration path where Mongo settings are stored.
      Returns:
      An initialized MongoDB Database, or null if the URI is disabled (e.g., "none") or empty.
    • loadRedis

      public static Database loadRedis(Config config, String basePath)
      Initializes and connects to a Redis database.
      Parameters:
      config - The Config instance containing Redis settings.
      basePath - The configuration path where Redis settings are stored.
      Returns:
      An initialized Redis Database, or null if the host is disabled (e.g., "none") or empty.