Advertisement
Lisenochek

Untitled

Sep 3rd, 2019
118
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.24 KB | None | 0 0
  1. package ru.proempire.lisenochek.pj.base.sql;
  2.  
  3. import ru.proempire.lisenochek.pj.base.AchievementData;
  4. import ru.proempire.lisenochek.pj.base.Data;
  5. import ru.proempire.lisenochek.pj.base.PlayerData;
  6. import ru.proempire.lisenochek.pj.base.utils.Logger;
  7.  
  8. import java.sql.ResultSet;
  9. import java.sql.SQLException;
  10. import java.util.ArrayList;
  11. import java.util.Arrays;
  12. import java.util.Collections;
  13.  
  14. public class SQLManager {
  15.  
  16. private static SQLManager manager;
  17.  
  18. private SQLManager() {
  19. manager = this;
  20. }
  21.  
  22. public static SQLManager getManager() {
  23. return manager == null ? new SQLManager() : manager;
  24. }
  25.  
  26. /*
  27. Метод инициализации базы данных и добавление в нее таблицы
  28. */
  29. public void initSQL() throws SQLException, ClassNotFoundException {
  30.  
  31. SQL.getSQL().connect();
  32.  
  33. SQL.getSQL().execute("CREATE TABLE IF NOT EXISTS ACHIEVEMENTS_PLAYERS" +
  34. "(playerName TEXT," +
  35. "xp INTEGER," +
  36. "level TEXT," +
  37. "data TEXT);"
  38. );
  39. }
  40.  
  41. public void updateData(PlayerData playerData) {
  42. SQL.getSQL().execute("UPDATE ACHIEVEMENTS SET xp = '" + playerData.getXP() + "', level = '" + playerData.getLevel().name() + "', data = '" + playerData.serialize() + "' WHERE playerName = '" + playerData.getPlayerName() + "'");
  43. }
  44.  
  45. public void loadData(String playerName) {
  46.  
  47. boolean isNull = true;
  48.  
  49. try {
  50. ResultSet resultSet = SQL.getSQL().executeQuery("SELECT playerName FROM ACHIEVEMENTS");
  51. while (resultSet.next()) if (resultSet.getString("playerName").equals(playerName)) isNull = false;
  52. resultSet.close();
  53. } catch (Exception e) {
  54. Logger.getLogger("Что-то пошло не так и произошло исключение:").error();
  55. e.printStackTrace();
  56. }
  57.  
  58. if (isNull) {
  59. PlayerData playerData = new PlayerData(playerName, 0, PlayerData.Level.LEVEL_1);
  60. PlayerData.playersMap.put(playerName, playerData);
  61. SQL.getSQL().execute("INSERT INTO ACHIEVEMENTS (playerName, xp, level, data) VALUES ('" + playerName + "', '" + playerData.getXP() + "', '" + playerData.getLevel().name() + "', '" + playerData.serialize() + "')");
  62. return;
  63. }
  64.  
  65. try {
  66. ResultSet resultSet = SQL.getSQL().executeQuery("SELECT * FROM ACHIEVEMENTS WHERE playerName = '" + playerName + "'");
  67. while (resultSet.next()) {
  68. PlayerData playerData = new PlayerData(playerName, resultSet.getInt("xp"), PlayerData.Level.valueOf(resultSet.getString("level")));
  69. for (String s : resultSet.getString("data").split(" ")) {
  70. String[] s1 = s.split(":");
  71. playerData.getAchievementsMap().put(AchievementData.Achievement.valueOf(s1[0]), AchievementData.deserialize(s1[1]));
  72. }
  73. PlayerData.playersMap.put(playerName, playerData);
  74. }
  75. resultSet.close();
  76. } catch (Exception e) {
  77. Logger.getLogger("Что-то пошло не так:").error();
  78. e.printStackTrace();
  79. }
  80. }
  81. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement