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>
|
<artifactId>maven-javadoc-plugin</artifactId>
|
||||||
<version>3.2.0</version>
|
<version>3.2.0</version>
|
||||||
<configuration>
|
<configuration>
|
||||||
<additionalOptions><additionalOption>-Xdoclint:none</additionalOption></additionalOptions>
|
<additionalOptions>
|
||||||
|
<additionalOption>-Xdoclint:none</additionalOption>
|
||||||
|
</additionalOptions>
|
||||||
<show>public</show>
|
<show>public</show>
|
||||||
</configuration>
|
</configuration>
|
||||||
</plugin>
|
</plugin>
|
||||||
@ -104,9 +106,9 @@
|
|||||||
|
|
||||||
<!-- MySQL Connector -->
|
<!-- MySQL Connector -->
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>mysql</groupId>
|
<groupId>com.mysql</groupId>
|
||||||
<artifactId>mysql-connector-java</artifactId>
|
<artifactId>mysql-connector-j</artifactId>
|
||||||
<version>8.0.22</version>
|
<version>8.3.0</version>
|
||||||
<scope>runtime</scope>
|
<scope>runtime</scope>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
|
||||||
|
@ -8,44 +8,55 @@ import org.slf4j.LoggerFactory;
|
|||||||
|
|
||||||
class DatabasePool {
|
class DatabasePool {
|
||||||
private final Logger log = LoggerFactory.getLogger(DatabasePool.class);
|
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 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) {
|
public boolean getStoragePooling(ConfigurationManager config) {
|
||||||
try {
|
try {
|
||||||
HikariConfig databaseConfiguration = new HikariConfig();
|
HikariConfig databaseConfiguration = new HikariConfig();
|
||||||
databaseConfiguration.setMaximumPoolSize(config.getInt("db.pool.maxsize", 50));
|
databaseConfiguration.setMaximumPoolSize(config.getInt(DB_POOL_MAX_SIZE, 50));
|
||||||
databaseConfiguration.setMinimumIdle(config.getInt("db.pool.minsize", 10));
|
databaseConfiguration.setMinimumIdle(config.getInt(DB_POOL_MIN_SIZE, 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.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", "localhost"));
|
databaseConfiguration.addDataSourceProperty("serverName", config.getValue(DB_HOSTNAME_KEY, "localhost"));
|
||||||
databaseConfiguration.addDataSourceProperty("port", config.getValue("db.port", "3306"));
|
databaseConfiguration.addDataSourceProperty("port", config.getValue(DB_PORT_KEY, "3306"));
|
||||||
databaseConfiguration.addDataSourceProperty("databaseName", config.getValue("db.database", "habbo"));
|
databaseConfiguration.addDataSourceProperty("databaseName", config.getValue(DB_NAME_KEY));
|
||||||
databaseConfiguration.addDataSourceProperty("user", config.getValue("db.username"));
|
databaseConfiguration.addDataSourceProperty("user", config.getValue(DB_USER_KEY));
|
||||||
databaseConfiguration.addDataSourceProperty("password", config.getValue("db.password"));
|
databaseConfiguration.addDataSourceProperty("password", config.getValue(DB_PASSWORD_KEY));
|
||||||
databaseConfiguration.addDataSourceProperty("dataSource.logger", "com.mysql.jdbc.log.StandardLogger");
|
log.info("INITIALIZING DATABASE SERVER: " + config.getValue(DB_HOSTNAME_KEY));
|
||||||
databaseConfiguration.addDataSourceProperty("dataSource.logSlowQueries", "true");
|
log.info("ON PORT: " + config.getValue(DB_PORT_KEY));
|
||||||
databaseConfiguration.addDataSourceProperty("dataSource.dumpQueriesOnException", "true");
|
log.info("HABBO DATABASE: " + config.getValue(DB_NAME_KEY));
|
||||||
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");
|
|
||||||
this.database = new HikariDataSource(databaseConfiguration);
|
this.database = new HikariDataSource(databaseConfiguration);
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
|
log.error("Error initializing database connection pool: {}", e.getMessage());
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
public HikariDataSource getDatabase() {
|
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