Advertisement
Guest User

Untitled

a guest
Feb 18th, 2020
88
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.40 KB | None | 0 0
  1. package net.evan.core.api.database;
  2.  
  3. import com.zaxxer.hikari.HikariConfig;
  4. import com.zaxxer.hikari.HikariDataSource;
  5.  
  6. import java.sql.Connection;
  7. import java.sql.SQLException;
  8.  
  9. public class DatabaseAccess {
  10.  
  11. private DatabaseCredentials credentials;
  12. private HikariDataSource hikariDataSource;
  13.  
  14. public DatabaseAccess(DatabaseCredentials credentials) {
  15. this.credentials = credentials;
  16. }
  17.  
  18. private void setupHikariCP() {
  19. HikariConfig hikariConfig = new HikariConfig();
  20.  
  21. hikariConfig.setMaximumPoolSize(10);
  22. hikariConfig.setJdbcUrl(credentials.toURI());
  23. hikariConfig.setUsername(credentials.getUser());
  24. hikariConfig.setPassword(credentials.getPass());
  25. hikariConfig.setMaxLifetime(600000L);
  26. hikariConfig.setIdleTimeout(300000L);
  27. hikariConfig.setLeakDetectionThreshold(300000L);
  28. hikariConfig.setConnectionTimeout(10000L);
  29.  
  30. this.hikariDataSource = new HikariDataSource(hikariConfig);
  31. }
  32.  
  33. public void initPool() {
  34. setupHikariCP();
  35. }
  36.  
  37. public void closePool() {
  38. this.hikariDataSource.close();
  39. }
  40.  
  41. public Connection getConnection() throws SQLException {
  42. if(this.hikariDataSource == null) {
  43. System.out.println("Not connected");
  44. setupHikariCP();
  45. }
  46. return this.hikariDataSource.getConnection();
  47. }
  48.  
  49. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement