Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package main.wizardbr.spawner.sql;
- import java.io.File;
- import java.sql.Connection;
- import java.sql.DriverManager;
- import java.sql.PreparedStatement;
- import java.sql.ResultSet;
- import java.sql.SQLException;
- import java.util.Optional;
- import java.util.function.Consumer;
- import java.util.logging.Level;
- import java.util.logging.Logger;
- import main.wizardbr.spawner.WSpawners;
- import main.wizardbr.spawner.sql.service.SQLService;
- public class SQLProvider implements SQLService{
- //Inspired by: https://github.com/zkingboos/UniversalWrapper/blob/master/src/main/java/dev/king/jdbc/sql/SqlProvider.java
- private WSpawners plugin = WSpawners.getInstance();
- private Connection con;
- @Override
- public void openConnection() {
- File file = new File(plugin.getDataFolder(), "database.db");
- try {
- Class.forName("org.sqlite.JDBC");
- con = DriverManager.getConnection("jdbc:sqlite:" + file);
- } catch (ClassNotFoundException e) {
- e.printStackTrace();
- } catch (SQLException e) {
- e.printStackTrace();
- } finally {
- Logger.getGlobal().log(Level.INFO, "§7[WSpawners] §aConexão estabelicida com a database!");
- }
- }
- @Override
- public boolean hasConnection() {
- return con != null;
- }
- @Override
- public void closeConnection() {
- synchronized (con) {
- try {
- if(con.isReadOnly())
- try {
- con.close();
- } catch (SQLException e) {
- e.printStackTrace();
- }
- } catch (SQLException e) {
- e.printStackTrace();
- }
- }
- }
- @Override
- public <T> Optional<T> query(String query, Consumer<ResultSet> result) {
- try {
- PreparedStatement stm = con.prepareStatement(query);
- ResultSet rs = stm.executeQuery();
- if(rs != null && rs.next()) result.accept(rs); else new Exception("§7[WSpawners] §cOcorreu um erro em uma query no SQL!");
- T receive = (T) rs; return Optional.ofNullable(receive);
- } catch (SQLException e) {
- e.printStackTrace();
- }
- return Optional.empty();
- }
- @Override
- public boolean update(String query, Consumer<ResultSet> result) {
- try {
- PreparedStatement stm = con.prepareStatement(query);
- ResultSet rs = stm.executeQuery();
- if(rs != null && rs.next()) result.accept(rs); else new Exception("§7[WSpawners] §cOcorreu um erro em uma query no SQL!");
- return stm.execute();
- } catch (SQLException e) {
- e.printStackTrace();
- }
- return false;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement