34 lines
1.1 KiB
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();
|
|
}
|
|
} |