RuneHive-Game
Loading...
Searching...
No Matches
PostgreService.java
Go to the documentation of this file.
1package com.runehive.game.service;
2
3import com.runehive.Config;
4import com.runehive.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
14public final class PostgreService {
15
16 private static final Logger logger = LogManager.getLogger(PostgreService.class);
17
18 private static HikariDataSource connectionPool;
19
20 public static void start() throws Exception {
21 HikariConfig config = new HikariConfig();
22 config.setDriverClassName("org.postgresql.Driver");
23 config.setJdbcUrl(Config.POSTGRE_URL);
24 config.setUsername(Config.POSTGRE_USER);
25 config.setPassword(Config.POSTGRE_PASS);
26 config.setMaximumPoolSize(50);
27 config.setConnectionTimeout(10_000);
28 config.setIdleTimeout(0);
29 config.setMaxLifetime(0);
30 config.addDataSourceProperty("cachePrepStmts", "true");
31 connectionPool = new HikariDataSource(config);
32 logger.info("Successfully connected to game database.");
33 }
34
35 public static HikariDataSource getConnectionPool() {
36 return connectionPool;
37 }
38
39 public static Connection getConnection() throws SQLException {
41 return DriverManager.getConnection(Config.POSTGRE_URL, Config.POSTGRE_USER, Config.POSTGRE_PASS);
42 }
43 return connectionPool.getConnection();
44 }
45
46}
The class that contains setting-related constants for the server.
Definition Config.java:24
static final String POSTGRE_URL
Definition Config.java:128
static final String POSTGRE_USER
Definition Config.java:129
static WorldType WORLD_TYPE
Definition Config.java:103
static final String POSTGRE_PASS
Definition Config.java:130
static HikariDataSource getConnectionPool()
The OS Royale world types.
Definition WorldType.java:8