Skip to content

Commit

Permalink
Added dialect config item
Browse files Browse the repository at this point in the history
  • Loading branch information
Tim203 committed Feb 11, 2024
1 parent a436016 commit 0dcbc9f
Show file tree
Hide file tree
Showing 5 changed files with 39 additions and 6 deletions.
15 changes: 14 additions & 1 deletion core/src/main/java/org/geysermc/databaseutils/DatabaseUtils.java
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,7 @@
import java.util.concurrent.ExecutorService;
import org.geysermc.databaseutils.codec.TypeCodec;
import org.geysermc.databaseutils.codec.TypeCodecRegistry;
import org.geysermc.databaseutils.sql.SqlDialect;

public class DatabaseUtils {
private final TypeCodecRegistry registry;
Expand Down Expand Up @@ -81,6 +82,7 @@ public static class Builder {
private String password;
private String poolName;
private int connectionPoolSize;
private SqlDialect dialect;
private ExecutorService executorService;

private Builder() {}
Expand Down Expand Up @@ -153,6 +155,15 @@ public Builder connectionPoolSize(int connectionPoolSize) {
return this;
}

public SqlDialect dialect() {
return dialect;
}

public Builder dialect(SqlDialect dialect) {
this.dialect = dialect;
return this;
}

public ExecutorService executorService() {
return executorService;
}
Expand All @@ -165,7 +176,9 @@ public Builder executorService(ExecutorService executorService) {
public DatabaseUtils build() {
return new DatabaseUtils(
registry,
config != null ? config : new DatabaseConfig(uri, username, password, poolName, connectionPoolSize),
config != null
? config
: new DatabaseConfig(uri, username, password, poolName, connectionPoolSize, dialect),
executorService);
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -24,4 +24,7 @@
*/
package org.geysermc.databaseutils;

public record DatabaseConfig(String uri, String username, String password, String poolName, int connectionPoolSize) {}
import org.geysermc.databaseutils.sql.SqlDialect;

public record DatabaseConfig(
String uri, String username, String password, String poolName, int connectionPoolSize, SqlDialect dialect) {}
Original file line number Diff line number Diff line change
Expand Up @@ -31,19 +31,22 @@
import org.geysermc.databaseutils.DatabaseConfig;

public final class SqlDatabase extends Database {
private SqlDialect dialect;
private HikariDataSource dataSource;

@Override
public void start(DatabaseConfig config, ExecutorService service) {
super.start(config, service);
this.dialect = config.dialect();

var hikariConfig = new HikariConfig();
hikariConfig.setJdbcUrl(config.uri());
hikariConfig.setUsername(config.username());
hikariConfig.setPassword(config.password());
hikariConfig.setPoolName(config.poolName());
hikariConfig.setMaximumPoolSize(config.connectionPoolSize());

dataSource = new HikariDataSource(hikariConfig);
this.dataSource = new HikariDataSource(hikariConfig);
}

@Override
Expand All @@ -52,7 +55,7 @@ public void stop() {
}

public SqlDialect dialect() {
return SqlDialect.H2; // todo
return dialect;
}

public HikariDataSource dataSource() {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -24,11 +24,25 @@
*/
package org.geysermc.databaseutils.sql;

import java.util.Locale;

public enum SqlDialect {
H2,
SQL_SERVER,
MYSQL,
ORACLE_DATABASE,
POSTGRESQL,
SQLITE
SQLITE;

private static final SqlDialect[] VALUES = values();

public static SqlDialect byName(String dialectName) {
var normalized = dialectName.replace('-', '_').replace(' ', '_').toUpperCase(Locale.ROOT);
for (SqlDialect value : VALUES) {
if (value.name().equals(normalized)) {
return value;
}
}
return null;
}
}
2 changes: 1 addition & 1 deletion database/sql/build.gradle.kts
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
dependencies {
implementation(projects.databaseCore)
api(projects.databaseCore)
api(libs.hikari.cp)

testImplementation(platform("org.junit:junit-bom:5.9.1"))
Expand Down

0 comments on commit 0dcbc9f

Please sign in to comment.