Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package net.evan.core.api.database;
- import com.zaxxer.hikari.HikariConfig;
- import com.zaxxer.hikari.HikariDataSource;
- import java.sql.Connection;
- import java.sql.SQLException;
- public class DatabaseAccess {
- private DatabaseCredentials credentials;
- private HikariDataSource hikariDataSource;
- public DatabaseAccess(DatabaseCredentials credentials) {
- this.credentials = credentials;
- }
- private void setupHikariCP() {
- HikariConfig hikariConfig = new HikariConfig();
- hikariConfig.setMaximumPoolSize(10);
- hikariConfig.setJdbcUrl(credentials.toURI());
- hikariConfig.setUsername(credentials.getUser());
- hikariConfig.setPassword(credentials.getPass());
- hikariConfig.setMaxLifetime(600000L);
- hikariConfig.setIdleTimeout(300000L);
- hikariConfig.setLeakDetectionThreshold(300000L);
- hikariConfig.setConnectionTimeout(10000L);
- this.hikariDataSource = new HikariDataSource(hikariConfig);
- }
- public void initPool() {
- setupHikariCP();
- }
- public void closePool() {
- this.hikariDataSource.close();
- }
- public Connection getConnection() throws SQLException {
- if(this.hikariDataSource == null) {
- System.out.println("Not connected");
- setupHikariCP();
- }
- return this.hikariDataSource.getConnection();
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement