mirror of
https://github.com/songoda/SongodaCore.git
synced 2025-01-07 08:17:43 +01:00
New method to get MySQL connection for HikariCP
This commit is contained in:
parent
1ab918a32e
commit
0ae9c6fcdb
@ -29,4 +29,6 @@ public interface DatabaseConnector {
|
||||
interface ConnectionCallback {
|
||||
void accept(Connection connection) throws SQLException;
|
||||
}
|
||||
|
||||
Connection getConnection();
|
||||
}
|
||||
|
@ -12,7 +12,7 @@ public class MySQLConnector implements DatabaseConnector {
|
||||
private HikariDataSource hikari;
|
||||
private boolean initializedSuccessfully;
|
||||
|
||||
public MySQLConnector(Plugin plugin, String hostname, int port, String database, String username, String password, boolean useSSL) {
|
||||
public MySQLConnector(Plugin plugin, String hostname, int port, String database, String username, String password, boolean useSSL, int poolSize) {
|
||||
this.plugin = plugin;
|
||||
|
||||
plugin.getLogger().info("connecting to " + hostname + " : " + port);
|
||||
@ -21,7 +21,7 @@ public class MySQLConnector implements DatabaseConnector {
|
||||
config.setJdbcUrl("jdbc:mysql://" + hostname + ":" + port + "/" + database + "?useSSL=" + useSSL);
|
||||
config.setUsername(username);
|
||||
config.setPassword(password);
|
||||
config.setMaximumPoolSize(3);
|
||||
config.setMaximumPoolSize(poolSize);
|
||||
|
||||
try {
|
||||
this.hikari = new HikariDataSource(config);
|
||||
@ -41,6 +41,7 @@ public class MySQLConnector implements DatabaseConnector {
|
||||
this.hikari.close();
|
||||
}
|
||||
|
||||
@Deprecated
|
||||
@Override
|
||||
public void connect(ConnectionCallback callback) {
|
||||
try (Connection connection = this.hikari.getConnection()) {
|
||||
@ -50,4 +51,14 @@ public class MySQLConnector implements DatabaseConnector {
|
||||
ex.printStackTrace();
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public Connection getConnection() {
|
||||
try {
|
||||
return this.hikari.getConnection();
|
||||
} catch (Exception ex) {
|
||||
ex.printStackTrace();
|
||||
}
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
@ -39,6 +39,7 @@ public class SQLiteConnector implements DatabaseConnector {
|
||||
}
|
||||
}
|
||||
|
||||
@Deprecated
|
||||
@Override
|
||||
public void connect(ConnectionCallback callback) {
|
||||
if (this.connection == null) {
|
||||
@ -56,4 +57,20 @@ public class SQLiteConnector implements DatabaseConnector {
|
||||
ex.printStackTrace();
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public Connection getConnection() {
|
||||
try {
|
||||
if (this.connection == null || this.connection.isClosed()) {
|
||||
try {
|
||||
this.connection = DriverManager.getConnection(this.connectionString);
|
||||
} catch (SQLException ex) {
|
||||
this.plugin.getLogger().severe("An error occurred retrieving the SQLite database connection: " + ex.getMessage());
|
||||
}
|
||||
}
|
||||
} catch (Exception ex) {
|
||||
ex.printStackTrace();
|
||||
}
|
||||
return this.connection;
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user