Advertisement
Guest User

Untitled

a guest
Mar 1st, 2019
142
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.48 KB | None | 0 0
  1. package fr.sithey.royalapi.sql;
  2.  
  3. import fr.sithey.royalapi.Main;
  4. import org.bukkit.Bukkit;
  5.  
  6. import java.sql.*;
  7. import java.util.function.Consumer;
  8.  
  9. public class SqlConnection {
  10. private String urlbase;
  11. private String host;
  12. private String database;
  13. private String user;
  14. private String password;
  15.  
  16. private Connection connection;
  17.  
  18. public SqlConnection(String urlbase, String host, String database, String user, String password) {
  19. this.urlbase = urlbase;
  20. this.host = host;
  21. this.database = database;
  22. this.user = user;
  23. this.password = password;
  24. }
  25.  
  26. public Connection getConnection() {
  27. return connection;
  28. }
  29.  
  30. public boolean isConnected(){
  31. return connection != null;
  32. }
  33.  
  34. public void connect(){
  35. if(!isConnected()){
  36. try {
  37. connection = DriverManager.getConnection(urlbase + host + "/" + database, user, password);
  38. System.out.println("Connexion etablie");
  39. createTable();
  40. } catch (SQLException e) {
  41. e.printStackTrace();
  42. }
  43. }
  44. }
  45. public void createTable() {
  46. try {
  47.  
  48. Statement statement = connection.createStatement();
  49. Statement statement1 = connection.createStatement();
  50. Statement statement2 = connection.createStatement();
  51. Bukkit.getConsoleSender().sendMessage("§e[RoyalAPI] §aINFO: §6MYSQL §rCreation des tables inexistantes en cours...");
  52. statement.executeUpdate("CREATE TABLE IF NOT EXISTS `compte` (`#` INT NOT NULL AUTO_INCREMENT PRIMARY KEY,`uuid` varchar(200), `ip` varchar(200), `pseudo` varchar(200), `royalcoin` bigint(20), `grade` int(100))");
  53. statement1.executeUpdate("CREATE TABLE IF NOT EXISTS `bans` (`#` INT NOT NULL AUTO_INCREMENT PRIMARY KEY,`uuid` varchar(200),`end` bigint, `reason` varchar(200))");
  54. statement2.executeUpdate("CREATE TABLE IF NOT EXISTS `mute` (`#` INT NOT NULL AUTO_INCREMENT PRIMARY KEY,`uuid` varchar(200),`end` bigint, `reason` varchar(200))");
  55. ResultSet res = statement.executeQuery("SELECT * FROM `compte`");
  56. ResultSet res1 = statement.executeQuery("SELECT * FROM `bans`");
  57. ResultSet res2 = statement.executeQuery("SELECT * FROM `mute`");
  58. Bukkit.getConsoleSender().sendMessage("§e[RoyalAPI] §aINFO: §6MYSQL §rCreation des tables fini.");
  59.  
  60. res.next();
  61. res1.next();
  62. res2.next();
  63. } catch (SQLException e) {
  64. Bukkit.getConsoleSender().sendMessage("§e[RoyalAPI] §cERROR: §6MYSQL §rImpossible de creer les tables.");
  65. e.printStackTrace();
  66. }
  67. }
  68.  
  69. public void disconnect(){
  70. if(isConnected()){
  71. try {
  72. connection.close();
  73. connection = null;
  74. } catch (SQLException e) {
  75. e.printStackTrace();
  76. }
  77. }
  78. }
  79.  
  80.  
  81. public void createAccount(Compte compte){
  82. if (!hasAccount(compte)) {
  83. try {
  84. PreparedStatement q = connection.prepareStatement("INSERT INTO compte(uuid,ip,pseudo,royalcoin,grade) VALUES (?,?,?,?,?)");
  85. q.setString(1, compte.getUuid().toString());
  86. q.setString(2, compte.getIp());
  87. q.setString(3, compte.getPseudo());
  88. q.setInt(4, compte.getRoyalcoin());
  89. q.setInt(5, compte.getGrade().getPower());
  90. q.execute();
  91. q.close();
  92. } catch (SQLException e) {
  93. e.printStackTrace();
  94. }
  95. }
  96. }
  97.  
  98. public void loadAccout(Compte compte){
  99. try {
  100. PreparedStatement q = connection.prepareStatement("SELECT ip, pseudo, royalcoin, grade FROM compte where uuid = ?");
  101. q.setString(1, compte.getUuid().toString());
  102. ResultSet resultSet = q.executeQuery();
  103. if (resultSet.next()){
  104. compte.setIp(resultSet.getString("ip"));
  105. compte.setPseudo(resultSet.getString("pseudo"));
  106. compte.setRoyalcoin(resultSet.getInt("royalcoin"));
  107. compte.setGrade(Grade.getGradeWithPower(resultSet.getInt("grade")));
  108. }
  109. q.close();
  110. } catch (SQLException e) {
  111. e.printStackTrace();
  112. }
  113. }
  114.  
  115. public boolean hasAccount(Compte compte){
  116. try {
  117. PreparedStatement q = connection.prepareStatement("SELECT uuid FROM compte WHERE uuid = ?");
  118. q.setString(1, compte.getUuid().toString());
  119. ResultSet rs = q.executeQuery();
  120. boolean hasAccount = rs.next();
  121. q.close();
  122. return hasAccount;
  123. } catch (SQLException e) {
  124. e.printStackTrace();
  125. }
  126. return true;
  127. }
  128.  
  129. public void saveAccount(Compte compte){
  130. try {
  131. PreparedStatement q = connection.prepareStatement("UPDATE compte SET ip = ?, pseudo = ?, royalcoin = ?, grade = ? WHERE uuid = ?");
  132. q.setString(1, compte.getIp());
  133. q.setString(2, compte.getPseudo());
  134. q.setInt(3, compte.getRoyalcoin());
  135. q.setInt(4, compte.getGrade().getPower());
  136. q.setString(5, compte.getUuid().toString());
  137. q.executeUpdate();
  138. q.close();
  139. compte.destroy();
  140. } catch (SQLException e) {
  141. e.printStackTrace();
  142. }
  143. }
  144. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement