package com.supaham.commons.utils; import com.google.common.base.Preconditions; import com.supaham.commons.database.DatabaseSettings; import javax.annotation.Nonnull; /** * Utility methods for working with databases, including support for {@link DatabaseSettings} serializable class. * * @since 0.5.2 */ public class DatabaseUtils { public static final String MYSQL_CONN_STRING = "jdbc:mysql://%s:%s/%s"; public static final String MYSQL_DRIVER = "com.mysql.jdbc.Driver"; public static final int MYSQL_PORT = 3306; public static final int REDIS_PORT = 6379; @Nonnull public static String toMySQLConnectionString(@Nonnull DatabaseSettings config) { Preconditions.checkNotNull(config, "config cannot be null."); final String db = DatabaseSettings.MYSQL; String ip = config.getString(db, DatabaseSettings.IP) .orElseThrow(() -> new IllegalStateException("ip cannot be null.")); String port = config.getString(db, DatabaseSettings.PORT).orElse(String.valueOf(MYSQL_PORT)); String database = config.getString(db, DatabaseSettings.DATABASE) .orElseThrow(() -> new IllegalStateException("database cannot be null.")); return String.format(MYSQL_CONN_STRING, ip, port, database); } }