Update Mysql Driver
This commit is contained in:
parent
ffd3f33917
commit
91cb726c03
17
.gitignore
vendored
Normal file
17
.gitignore
vendored
Normal file
@ -0,0 +1,17 @@
|
||||
logging/
|
||||
compiled-builds/
|
||||
*.iml
|
||||
.idea/
|
||||
target/**
|
||||
TODO.txt
|
||||
packet.pkt
|
||||
plugins/**
|
||||
src/test/
|
||||
target/
|
||||
config.ini
|
||||
*.txt
|
||||
*.jar
|
||||
*.log
|
||||
*.zip
|
||||
.DS_Store
|
||||
|
@ -69,7 +69,9 @@
|
||||
<artifactId>maven-javadoc-plugin</artifactId>
|
||||
<version>3.2.0</version>
|
||||
<configuration>
|
||||
<additionalOptions><additionalOption>-Xdoclint:none</additionalOption></additionalOptions>
|
||||
<additionalOptions>
|
||||
<additionalOption>-Xdoclint:none</additionalOption>
|
||||
</additionalOptions>
|
||||
<show>public</show>
|
||||
</configuration>
|
||||
</plugin>
|
||||
@ -104,9 +106,9 @@
|
||||
|
||||
<!-- MySQL Connector -->
|
||||
<dependency>
|
||||
<groupId>mysql</groupId>
|
||||
<artifactId>mysql-connector-java</artifactId>
|
||||
<version>8.0.22</version>
|
||||
<groupId>com.mysql</groupId>
|
||||
<artifactId>mysql-connector-j</artifactId>
|
||||
<version>8.3.0</version>
|
||||
<scope>runtime</scope>
|
||||
</dependency>
|
||||
|
||||
|
@ -8,44 +8,55 @@ import org.slf4j.LoggerFactory;
|
||||
|
||||
class DatabasePool {
|
||||
private final Logger log = LoggerFactory.getLogger(DatabasePool.class);
|
||||
private static final String DB_POOL_MAX_SIZE = "db.pool.maxsize";
|
||||
private static final String DB_POOL_MIN_SIZE = "db.pool.minsize";
|
||||
private static final String DB_HOSTNAME_KEY = "db.hostname";
|
||||
private static final String DB_PORT_KEY = "db.port";
|
||||
private static final String DB_PASSWORD_KEY = "db.password";
|
||||
private static final String DB_NAME_KEY = "db.database";
|
||||
private static final String DB_USER_KEY = "db.username";
|
||||
private static final String DB_PARAMS_KEY = "db.params";
|
||||
private HikariDataSource database;
|
||||
private static DatabasePool instance;
|
||||
|
||||
DatabasePool() {
|
||||
// Private constructor for singleton pattern
|
||||
}
|
||||
|
||||
public static synchronized DatabasePool getInstance() {
|
||||
if (instance == null) {
|
||||
instance = new DatabasePool();
|
||||
}
|
||||
return instance;
|
||||
}
|
||||
|
||||
public boolean getStoragePooling(ConfigurationManager config) {
|
||||
try {
|
||||
HikariConfig databaseConfiguration = new HikariConfig();
|
||||
databaseConfiguration.setMaximumPoolSize(config.getInt("db.pool.maxsize", 50));
|
||||
databaseConfiguration.setMinimumIdle(config.getInt("db.pool.minsize", 10));
|
||||
databaseConfiguration.setJdbcUrl("jdbc:mysql://" + config.getValue("db.hostname", "localhost") + ":" + config.getValue("db.port", "3306") + "/" + config.getValue("db.database", "habbo") + config.getValue("db.params"));
|
||||
databaseConfiguration.addDataSourceProperty("serverName", config.getValue("db.hostname", "localhost"));
|
||||
databaseConfiguration.addDataSourceProperty("port", config.getValue("db.port", "3306"));
|
||||
databaseConfiguration.addDataSourceProperty("databaseName", config.getValue("db.database", "habbo"));
|
||||
databaseConfiguration.addDataSourceProperty("user", config.getValue("db.username"));
|
||||
databaseConfiguration.addDataSourceProperty("password", config.getValue("db.password"));
|
||||
databaseConfiguration.addDataSourceProperty("dataSource.logger", "com.mysql.jdbc.log.StandardLogger");
|
||||
databaseConfiguration.addDataSourceProperty("dataSource.logSlowQueries", "true");
|
||||
databaseConfiguration.addDataSourceProperty("dataSource.dumpQueriesOnException", "true");
|
||||
databaseConfiguration.addDataSourceProperty("prepStmtCacheSize", "500");
|
||||
databaseConfiguration.addDataSourceProperty("prepStmtCacheSqlLimit", "2048");
|
||||
// databaseConfiguration.addDataSourceProperty("dataSource.logWriter", Logging.getErrorsSQLWriter());
|
||||
databaseConfiguration.addDataSourceProperty("cachePrepStmts", "true");
|
||||
databaseConfiguration.addDataSourceProperty("useServerPrepStmts", "true");
|
||||
databaseConfiguration.addDataSourceProperty("rewriteBatchedStatements", "true");
|
||||
databaseConfiguration.addDataSourceProperty("useUnicode", "true");
|
||||
databaseConfiguration.setAutoCommit(true);
|
||||
databaseConfiguration.setConnectionTimeout(300000L);
|
||||
databaseConfiguration.setValidationTimeout(5000L);
|
||||
databaseConfiguration.setLeakDetectionThreshold(20000L);
|
||||
databaseConfiguration.setMaxLifetime(1800000L);
|
||||
databaseConfiguration.setIdleTimeout(600000L);
|
||||
//databaseConfiguration.setDriverClassName("com.mysql.jdbc.jdbc2.optional.MysqlDataSource");
|
||||
databaseConfiguration.setMaximumPoolSize(config.getInt(DB_POOL_MAX_SIZE, 50));
|
||||
databaseConfiguration.setMinimumIdle(config.getInt(DB_POOL_MIN_SIZE, 10));
|
||||
databaseConfiguration.setJdbcUrl("jdbc:mysql://" + config.getValue(DB_HOSTNAME_KEY, "localhost") + ":" + config.getValue(DB_PORT_KEY, "3306") + "/" + config.getValue(DB_NAME_KEY) + config.getValue(DB_PARAMS_KEY));
|
||||
databaseConfiguration.addDataSourceProperty("serverName", config.getValue(DB_HOSTNAME_KEY, "localhost"));
|
||||
databaseConfiguration.addDataSourceProperty("port", config.getValue(DB_PORT_KEY, "3306"));
|
||||
databaseConfiguration.addDataSourceProperty("databaseName", config.getValue(DB_NAME_KEY));
|
||||
databaseConfiguration.addDataSourceProperty("user", config.getValue(DB_USER_KEY));
|
||||
databaseConfiguration.addDataSourceProperty("password", config.getValue(DB_PASSWORD_KEY));
|
||||
log.info("INITIALIZING DATABASE SERVER: " + config.getValue(DB_HOSTNAME_KEY));
|
||||
log.info("ON PORT: " + config.getValue(DB_PORT_KEY));
|
||||
log.info("HABBO DATABASE: " + config.getValue(DB_NAME_KEY));
|
||||
|
||||
this.database = new HikariDataSource(databaseConfiguration);
|
||||
} catch (Exception e) {
|
||||
log.error("Error initializing database connection pool: {}", e.getMessage());
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
public HikariDataSource getDatabase() {
|
||||
return this.database;
|
||||
if (database == null) {
|
||||
throw new IllegalStateException("Database connection pool is not initialized.");
|
||||
}
|
||||
return database;
|
||||
}
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user