Class MariaDbConfig

java.lang.Object
net.blockhost.commons.database.mariadb.MariaDbConfig
All Implemented Interfaces:
PooledDatabaseConfig

public class MariaDbConfig extends Object implements PooledDatabaseConfig

ConfigLib-compatible MariaDB database configuration class.

This class can be embedded in your plugin's configuration to provide database connection settings. It uses ConfigLib annotations for YAML serialization with helpful comments.

Example usage in a plugin configuration:

@Configuration
public class PluginConfig {
    @Comment("Database connection settings")
    private MariaDbConfig database = new MariaDbConfig();

    public MariaDbConfig database() {
        return database;
    }
}

To use with SQLManager directly:

SQLManager sqlManager = SQLManager.create(config.database())
    .poolName("MyPlugin-Pool")
    .logger(logger)
    .build();

Use withers to create modified copies for specific use cases:

// Create a config for a specific database
MariaDbConfig authMeConfig = config.database()
    .withDatabase("authme")
    .withMaxPoolSize(5);
See Also:
  • Field Details

  • Constructor Details

    • MariaDbConfig

      public MariaDbConfig()
    • MariaDbConfig

      public MariaDbConfig(String host, int port, String database, String username, String password, int connectionTimeoutSeconds, int maxPoolSize, int minIdle)
  • Method Details

    • toCredentials

      public DatabaseCredentials toCredentials()
      Description copied from interface: PooledDatabaseConfig
      Converts this configuration to database credentials.
      Specified by:
      toCredentials in interface PooledDatabaseConfig
      Returns:
      a new DatabaseCredentials instance
    • jdbcUrl

      public String jdbcUrl()
      Constructs the JDBC URL for MariaDB connections.
      Returns:
      the JDBC URL string
    • host

      public final String host()
    • port

      public final int port()
    • database

      public final String database()
    • username

      public final String username()
    • password

      public final String password()
    • connectionTimeoutSeconds

      public final int connectionTimeoutSeconds()
    • maxPoolSize

      public final int maxPoolSize()
      Description copied from interface: PooledDatabaseConfig
      Gets the maximum number of connections in the pool.
      Specified by:
      maxPoolSize in interface PooledDatabaseConfig
      Returns:
      the maximum pool size
    • minIdle

      public final int minIdle()
      Description copied from interface: PooledDatabaseConfig
      Gets the minimum number of idle connections in the pool.
      Specified by:
      minIdle in interface PooledDatabaseConfig
      Returns:
      the minimum idle connections
    • withHost

      public final @NonNull MariaDbConfig withHost(String host)
      Returns:
      this.
    • withPort

      public final @NonNull MariaDbConfig withPort(int port)
      Returns:
      this.
    • withDatabase

      public final @NonNull MariaDbConfig withDatabase(String database)
      Returns:
      this.
    • withUsername

      public final @NonNull MariaDbConfig withUsername(String username)
      Returns:
      this.
    • withPassword

      public final @NonNull MariaDbConfig withPassword(String password)
      Returns:
      this.
    • withConnectionTimeoutSeconds

      public final @NonNull MariaDbConfig withConnectionTimeoutSeconds(int connectionTimeoutSeconds)
      Returns:
      this.
    • withMaxPoolSize

      public final @NonNull MariaDbConfig withMaxPoolSize(int maxPoolSize)
      Returns:
      this.
    • withMinIdle

      public final @NonNull MariaDbConfig withMinIdle(int minIdle)
      Returns:
      this.