package xyz.etztech.core.db; import com.zaxxer.hikari.HikariConfig; import com.zaxxer.hikari.HikariDataSource; import org.bukkit.plugin.java.JavaPlugin; import java.sql.Connection; import java.sql.SQLException; /** * A class to initialize an H2 database and retrieve connections */ public class DataSource { private final HikariDataSource dataSource; /** Create a data source for a plugin * @param plugin The plugin using this database. Used for creation purposes. */ public DataSource(JavaPlugin plugin) { HikariConfig config = new HikariConfig(); config.setJdbcUrl("jdbc:h2:" + plugin.getDataFolder().getAbsolutePath() + "/" + plugin.getName().toLowerCase()); config.setDriverClassName("org.h2.Driver"); dataSource = new HikariDataSource(config); } /** * @return A connection from the database * @throws SQLException If getting a connections throws an error, such as the data source being closed. */ public Connection getConnection() throws SQLException { return dataSource.getConnection(); } }