Guest User

Untitled

a guest
Apr 8th, 2017
52
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.51 KB | None | 0 0
  1. package mafia;
  2.  
  3. import java.sql.*;
  4. import java.util.*;
  5.  
  6. import com.google.gson.Gson;
  7. import com.google.gson.reflect.TypeToken;
  8.  
  9. public class MafiaStorage
  10. {
  11.  
  12. public static void insertMafia(Mafia mafia) {
  13. try {
  14. PreparedStatement sql = Main.getConnection().prepareStatement("INSERT INTO `pvp_mafias` (`name`,`tag`,`leader`,`members`, `kills`, `deaths`) VALUES (?,?,?,?,?,?);", 1);
  15. sql.setString(1, mafia.getName());
  16. sql.setString(2, mafia.getTag());
  17. sql.setString(3, mafia.getLeader());
  18. sql.setNull(4, 0);
  19. sql.setInt(5, 0);
  20. sql.setInt(6, 0);
  21. sql.executeUpdate();
  22. ResultSet result = sql.getGeneratedKeys();
  23. result.next();
  24. int id = result.getInt(1);
  25. result.close();
  26. mafia.setId(id);
  27. sql.close();
  28. }
  29. catch (SQLException ex) {
  30. ex.printStackTrace();
  31. }
  32. }
  33.  
  34. @SuppressWarnings("unchecked")
  35. public static void downloadMafias() {
  36. Gson gson = Main.getGson();
  37. try {
  38. PreparedStatement sql = Main.getConnection().prepareStatement("SELECT * FROM `pvp_mafias`");
  39. ResultSet result = sql.executeQuery();
  40. while (result.next()) {
  41. String name = result.getString("name");
  42. String tag = result.getString("tag");
  43. String leader = result.getString("leader");
  44. String membersJson = result.getString("members");
  45. List<Integer> members = new ArrayList<Integer>();
  46. if (membersJson != null && membersJson.length() > 0) {
  47. members = (List<Integer>)gson.fromJson(membersJson, new TypeToken<List<Integer>>() {}.getType());
  48. }
  49. new Mafia(result.getInt("id"), name, tag, leader, members, result.getInt("kills"), result.getInt("deaths"));
  50. }
  51. result.close();
  52. sql.close();
  53. }
  54. catch (SQLException ex) {
  55. ex.printStackTrace();
  56. }
  57. }
  58.  
  59. public static void exportMafias() {
  60. Gson gson = Main.getGson();
  61. Set<Mafia> trash = Mafia.TRASHCAN;
  62. if (!trash.isEmpty()) {
  63. StringBuilder trashIds = new StringBuilder("(");
  64. for (Mafia mafia : trash) {
  65. trashIds.append(mafia.getId() + ",");
  66. }
  67. String out = trashIds.toString();
  68. out = out.substring(0, out.length() - 1);
  69. out += ")";
  70. try {
  71. PreparedStatement sql = Main.getConnection().prepareStatement("DELETE FROM `pvp_mafias` WHERE `id` in " + out);
  72. sql.execute();
  73. sql.close();
  74. }
  75. catch (SQLException ex) {
  76. ex.printStackTrace();
  77. }
  78. Mafia.TRASHCAN.clear();
  79. }
  80. StringBuilder values = new StringBuilder("UPDATE `pvp_mafias` SET ");
  81. boolean empty = true;
  82. StringBuilder ids = new StringBuilder("(");
  83. String queryMembers = "`members` = CASE `id` ";
  84. String queryKills = "`kills` = CASE `id` ";
  85. String queryDeaths = "`deaths` = CASE `id` ";
  86. for (Mafia mafia2 : Mafia.getMafias()) {
  87. if (mafia2.changed) {
  88. empty = false;
  89. ids.append(mafia2.getId() + ",");
  90. queryMembers = queryMembers + " WHEN '" + mafia2.getId() + "' THEN '" + ((mafia2.getMembers() == null || mafia2.getMembers().isEmpty()) ? "NULL" : gson.toJson((Object)mafia2.getMembers())) + "'";
  91. queryKills = queryKills + " WHEN '" + mafia2.getId() + "' THEN '" + mafia2.getKills() + "'";
  92. queryDeaths = queryDeaths + " WHEN '" + mafia2.getId() + "' THEN '" + mafia2.getDeaths() + "'";
  93. mafia2.changed = false;
  94. }
  95. }
  96. if (empty) {
  97. return;
  98. }
  99. String out2 = ids.toString();
  100. out2 = out2.substring(0, out2.length() - 1);
  101. out2 += ")";
  102. queryMembers += "END, ";
  103. queryKills += "END, ";
  104. queryDeaths += "END ";
  105. values.append(queryMembers + queryKills + queryDeaths);
  106. values.append("WHERE `id` in " + out2);
  107. try {
  108. PreparedStatement sql2 = Main.getConnection().prepareStatement(values.toString());
  109. sql2.execute();
  110. sql2.close();
  111. }
  112. catch (SQLException ex2) {
  113. ex2.printStackTrace();
  114. }
  115. }
  116. }
Add Comment
Please, Sign In to add comment