Guest User

Untitled

a guest
Mar 18th, 2016
30
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 1.32 KB | None | 0 0
  1. public class SQLHandler
  2. {
  3.  
  4.     @Getter private boolean valid;
  5.     @Getter private HikariDataSource dataSource;
  6.  
  7.     public SQLHandler(JavaPlugin loader, String hoststring, String username, String password, String database)
  8.     {
  9.  
  10.         dataSource = new HikariDataSource();
  11.         dataSource.setDriverClassName("com.mysql.jdbc.Driver");
  12.         dataSource.setConnectionTimeout(2000);
  13.         dataSource.setJdbcUrl(getConnectURL(hoststring, database));
  14.         dataSource.setUsername(username);
  15.         dataSource.setPassword(password);
  16.         dataSource.setMaximumPoolSize(2);
  17.         dataSource.setThreadFactory(new ThreadFactoryBuilder().setDaemon(false).setNameFormat("hikari-sql-pool-%d").build());
  18.         valid = test();
  19.     }
  20.  
  21.     public String getConnectURL(String hostname, String database)
  22.     {
  23.         StringBuilder urlBuilder = new StringBuilder();
  24.         urlBuilder
  25.                 .append("jdbc:mysql://")
  26.                 .append(hostname)
  27.                 .append('/')
  28.                 .append(database)
  29.                 .append("?zeroDateTimeBehavior=convertToNull&characterEncoding=cp1251&dontTrackOpenResources=true&autoReconnect=true&maxReconnects=10");
  30.  
  31.         return urlBuilder.toString();
  32.     }
  33.  
  34.     public void shutdown()
  35.     {
  36.         valid = false;
  37.         dataSource.close();
  38.     }
  39.  
  40.     public boolean test()
  41.     {
  42.         try(Connection conn = dataSource.getConnection())
  43.         {
  44.             return conn.isValid(1);
  45.         }
  46.         catch(Exception e)
  47.         {
  48.             return false;
  49.         }
  50.     }
  51. }
Add Comment
Please, Sign In to add comment