Advertisement
Guest User

Untitled

a guest
Jan 18th, 2020
118
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.44 KB | None | 0 0
  1. package main.wizardbr.spawner.sql;
  2.  
  3. import java.io.File;
  4. import java.sql.Connection;
  5. import java.sql.DriverManager;
  6. import java.sql.PreparedStatement;
  7. import java.sql.ResultSet;
  8. import java.sql.SQLException;
  9. import java.util.Optional;
  10. import java.util.function.Consumer;
  11. import java.util.logging.Level;
  12. import java.util.logging.Logger;
  13.  
  14. import main.wizardbr.spawner.WSpawners;
  15. import main.wizardbr.spawner.sql.service.SQLService;
  16.  
  17. public class SQLProvider implements SQLService{
  18.  
  19. //Inspired by: https://github.com/zkingboos/UniversalWrapper/blob/master/src/main/java/dev/king/jdbc/sql/SqlProvider.java
  20. private WSpawners plugin = WSpawners.getInstance();
  21. private Connection con;
  22.  
  23. @Override
  24. public void openConnection() {
  25.  
  26. File file = new File(plugin.getDataFolder(), "database.db");
  27.  
  28. try {
  29. Class.forName("org.sqlite.JDBC");
  30. con = DriverManager.getConnection("jdbc:sqlite:" + file);
  31. } catch (ClassNotFoundException e) {
  32. e.printStackTrace();
  33. } catch (SQLException e) {
  34. e.printStackTrace();
  35. } finally {
  36. Logger.getGlobal().log(Level.INFO, "§7[WSpawners] §aConexão estabelicida com a database!");
  37. }
  38.  
  39. }
  40.  
  41. @Override
  42. public boolean hasConnection() {
  43. return con != null;
  44. }
  45.  
  46. @Override
  47. public void closeConnection() {
  48. synchronized (con) {
  49. try {
  50. if(con.isReadOnly())
  51. try {
  52. con.close();
  53. } catch (SQLException e) {
  54. e.printStackTrace();
  55. }
  56. } catch (SQLException e) {
  57. e.printStackTrace();
  58. }
  59. }
  60. }
  61.  
  62. @Override
  63. public <T> Optional<T> query(String query, Consumer<ResultSet> result) {
  64. try {
  65.  
  66. PreparedStatement stm = con.prepareStatement(query);
  67. ResultSet rs = stm.executeQuery();
  68.  
  69. if(rs != null && rs.next()) result.accept(rs); else new Exception("§7[WSpawners] §cOcorreu um erro em uma query no SQL!");
  70.  
  71. T receive = (T) rs; return Optional.ofNullable(receive);
  72.  
  73. } catch (SQLException e) {
  74. e.printStackTrace();
  75. }
  76.  
  77. return Optional.empty();
  78. }
  79.  
  80. @Override
  81. public boolean update(String query, Consumer<ResultSet> result) {
  82. try {
  83.  
  84. PreparedStatement stm = con.prepareStatement(query);
  85. ResultSet rs = stm.executeQuery();
  86.  
  87. if(rs != null && rs.next()) result.accept(rs); else new Exception("§7[WSpawners] §cOcorreu um erro em uma query no SQL!");
  88.  
  89. return stm.execute();
  90.  
  91. } catch (SQLException e) {
  92. e.printStackTrace();
  93. }
  94.  
  95. return false;
  96. }
  97.  
  98.  
  99.  
  100. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement