Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public class SQLHandler
- {
- @Getter private boolean valid;
- @Getter private HikariDataSource dataSource;
- public SQLHandler(JavaPlugin loader, String hoststring, String username, String password, String database)
- {
- dataSource = new HikariDataSource();
- dataSource.setDriverClassName("com.mysql.jdbc.Driver");
- dataSource.setConnectionTimeout(2000);
- dataSource.setJdbcUrl(getConnectURL(hoststring, database));
- dataSource.setUsername(username);
- dataSource.setPassword(password);
- dataSource.setMaximumPoolSize(2);
- dataSource.setThreadFactory(new ThreadFactoryBuilder().setDaemon(false).setNameFormat("hikari-sql-pool-%d").build());
- valid = test();
- }
- public String getConnectURL(String hostname, String database)
- {
- StringBuilder urlBuilder = new StringBuilder();
- urlBuilder
- .append("jdbc:mysql://")
- .append(hostname)
- .append('/')
- .append(database)
- .append("?zeroDateTimeBehavior=convertToNull&characterEncoding=cp1251&dontTrackOpenResources=true&autoReconnect=true&maxReconnects=10");
- return urlBuilder.toString();
- }
- public void shutdown()
- {
- valid = false;
- dataSource.close();
- }
- public boolean test()
- {
- try(Connection conn = dataSource.getConnection())
- {
- return conn.isValid(1);
- }
- catch(Exception e)
- {
- return false;
- }
- }
- }
Add Comment
Please, Sign In to add comment