PluginAPI/src/main/java/xyz/etztech/core/db/DataSource.java

34 lines
1.1 KiB
Java

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 HikariConfig config = new HikariConfig();
private HikariDataSource dataSource;
/** Create a data source for a plugin
* @param plugin The plugin using this database. Used for creation purposes.
*/
public DataSource(JavaPlugin plugin) {
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();
}
}