Guest User

SqlConnection

a guest
Jul 9th, 2016
1,188
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.12 KB | None | 0 0
  1. package net.gravenilvec.Coins;
  2.  
  3. import java.sql.Connection;
  4. import java.sql.DriverManager;
  5. import java.sql.PreparedStatement;
  6. import java.sql.ResultSet;
  7. import java.sql.SQLException;
  8.  
  9. import net.gravenilvec.cache.PlayerData;
  10. import net.gravenilvec.grades.Rank;
  11.  
  12. import org.bukkit.entity.Player;
  13.  
  14. public class SqlConnection {
  15.  
  16. private Connection connection;
  17. private String urlbase,host,database,user,pass;
  18. private Coins pl;
  19.  
  20. public SqlConnection(Coins pl, String urlbase, String host, String database, String user, String pass) {
  21. this.urlbase = urlbase;
  22. this.host = host;
  23. this.database = database;
  24. this.user = user;
  25. this.pl = pl;
  26. this.pass = pass;
  27. }
  28.  
  29. public void connection(){
  30. if(!isConnected()){
  31. try {
  32. connection = DriverManager.getConnection(urlbase + host + "/" + database, user, pass);
  33. System.out.println("connected ok");
  34. } catch (SQLException e) {
  35. e.printStackTrace();
  36. }
  37. }
  38. }
  39.  
  40. public void disconnect(){
  41. if(isConnected()){
  42. try {
  43. connection.close();
  44. System.out.println("connected off");
  45. } catch (SQLException e) {
  46. e.printStackTrace();
  47. }
  48. }
  49. }
  50.  
  51. /*
  52. * INSERT
  53. * UPDATE
  54. * DELETE
  55. * SELECT
  56. *
  57. * PREPARER ?,?
  58. * REMPLACER LES ? PAR DES VALEURS
  59. * EXECUTE
  60. *
  61. */
  62.  
  63. public boolean isConnected(){
  64. return connection != null;
  65. }
  66.  
  67. public void createAccount(Player player){
  68. if(!hasAccount(player)){
  69. //INSERT
  70.  
  71. try {
  72. PreparedStatement q = connection.prepareStatement("INSERT INTO joueurs(uuid,coins,grade) VALUES (?,?,?)");
  73. q.setString(1, player.getUniqueId().toString());
  74. q.setInt(2, 100);
  75. q.setInt(3, Rank.JOUEUR.getPower());
  76. q.execute();
  77. q.close();
  78. } catch (SQLException e) {
  79. e.printStackTrace();
  80. }
  81.  
  82.  
  83. }
  84. }
  85.  
  86. public boolean hasAccount(Player player){
  87. //SELECT
  88.  
  89. try {
  90. PreparedStatement q = connection.prepareStatement("SELECT uuid FROM joueurs WHERE uuid = ?");
  91. q.setString(1, player.getUniqueId().toString());
  92. ResultSet resultat = q.executeQuery();
  93. boolean hasAccount = resultat.next();
  94. q.close();
  95. return hasAccount;
  96. } catch (SQLException e) {
  97. e.printStackTrace();
  98. }
  99.  
  100. return false;
  101. }
  102.  
  103. public int getBalance(Player player){
  104. //SELECT
  105. if(pl.dataPlayers.containsKey(player)){
  106. PlayerData dataP = pl.dataPlayers.get(player);
  107. return dataP.getCoins();
  108. }
  109.  
  110. return 0;
  111. }
  112.  
  113. public void addMoney(Player player,int amount){
  114.  
  115. if(pl.dataPlayers.containsKey(player)){
  116. PlayerData dataP = pl.dataPlayers.get(player);
  117. int coins = dataP.getCoins() + amount;
  118. dataP.setCoins(coins);
  119. pl.dataPlayers.remove(player);
  120. pl.dataPlayers.put(player, dataP);
  121. }
  122.  
  123. }
  124.  
  125. public void removeMoney(Player player,int amount){
  126.  
  127. if(pl.dataPlayers.containsKey(player)){
  128. PlayerData dataP = pl.dataPlayers.get(player);
  129. int coins = dataP.getCoins() - amount;
  130.  
  131. if(coins <= 0){
  132. return;
  133. }
  134.  
  135. dataP.setCoins(coins);
  136. pl.dataPlayers.remove(player);
  137. pl.dataPlayers.put(player, dataP);
  138. }
  139.  
  140. }
  141.  
  142. public void setRank(Player player, Rank rank){
  143.  
  144. if(pl.dataPlayers.containsKey(player)){
  145. PlayerData dataP = pl.dataPlayers.get(player);
  146. dataP.setRank(rank);
  147. pl.dataPlayers.remove(player);
  148. pl.dataPlayers.put(player, dataP);
  149. }
  150.  
  151. }
  152.  
  153. public Rank getRank(Player player){
  154.  
  155. if(pl.dataPlayers.containsKey(player)){
  156. PlayerData dataP = pl.dataPlayers.get(player);
  157. return dataP.getRank();
  158. }
  159.  
  160. return Rank.JOUEUR;
  161. }
  162.  
  163. public PlayerData createPlayerData(Player player){
  164.  
  165. if(!pl.dataPlayers.containsKey(player)){
  166. try {
  167. PreparedStatement rs = connection.prepareStatement("SELECT coins, grade FROM joueurs WHERE uuid = ?");
  168. rs.setString(1, player.getUniqueId().toString());
  169. ResultSet resultats = rs.executeQuery();
  170.  
  171. int coins = 0;
  172. Rank rank = Rank.JOUEUR;
  173.  
  174. while(resultats.next()){
  175. coins = resultats.getInt("coins");
  176. rank = Rank.powerToRank(resultats.getInt("grade"));
  177. }
  178.  
  179. PlayerData dataP = new PlayerData();
  180. dataP.setCoins(coins);
  181. dataP.setRank(rank);
  182. return dataP;
  183.  
  184.  
  185. } catch (SQLException e) {
  186. e.printStackTrace();
  187. }
  188. }
  189.  
  190. return new PlayerData();
  191.  
  192. }
  193.  
  194. public void updatePlayerData(Player player){
  195.  
  196. if(pl.dataPlayers.containsKey(player)){
  197.  
  198. PlayerData dataP = pl.dataPlayers.get(player);
  199. int coins = dataP.getCoins();
  200. Rank rank = dataP.getRank();
  201. int power = rank.getPower();
  202.  
  203. try {
  204. PreparedStatement rs = connection.prepareStatement("UPDATE joueurs SET grade = ?, coins = ? WHERE uuid = ?");
  205. rs.setInt(1, power);
  206. rs.setInt(2, coins);
  207. rs.setString(3, player.getUniqueId().toString());
  208. rs.executeUpdate();
  209. rs.close();
  210. } catch (SQLException e) {
  211. e.printStackTrace();
  212. }
  213.  
  214.  
  215. }
  216.  
  217. }
  218.  
  219.  
  220.  
  221.  
  222. }
Add Comment
Please, Sign In to add comment