RuneHive-Tarnish
Neural OSRS Enhancement Framework
Loading...
Searching...
No Matches
PostgreService.java
1package com.osroyale.game.service;
2
3import com.osroyale.Config;
4import com.osroyale.game.world.WorldType;
5import com.zaxxer.hikari.HikariConfig;
6import com.zaxxer.hikari.HikariDataSource;
7import org.apache.logging.log4j.LogManager;
8import org.apache.logging.log4j.Logger;
9
10import java.sql.Connection;
11import java.sql.DriverManager;
12import java.sql.SQLException;
13
37
38public final class PostgreService {
39
40 private static final Logger logger = LogManager.getLogger(PostgreService.class);
41
42 private static HikariDataSource connectionPool;
43
44 public static void start() throws Exception {
45 HikariConfig config = new HikariConfig();
46 config.setDriverClassName("org.postgresql.Driver");
47 config.setJdbcUrl(Config.POSTGRE_URL);
48 config.setUsername(Config.POSTGRE_USER);
49 config.setPassword(Config.POSTGRE_PASS);
50 config.setMaximumPoolSize(50);
51 config.setConnectionTimeout(10_000);
52 config.setIdleTimeout(0);
53 config.setMaxLifetime(0);
54 config.addDataSourceProperty("cachePrepStmts", "true");
55 connectionPool = new HikariDataSource(config);
56 logger.info("Successfully connected to game database.");
57 }
58
59 public static HikariDataSource getConnectionPool() {
60 return connectionPool;
61 }
62
63 public static Connection getConnection() throws SQLException {
64 if (Config.WORLD_TYPE != WorldType.LIVE) {
65 return DriverManager.getConnection(Config.POSTGRE_URL, Config.POSTGRE_USER, Config.POSTGRE_PASS);
66 }
67 return connectionPool.getConnection();
68 }
69
70}