Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package ru.proempire.lisenochek.pj.base.sql;
- import ru.proempire.lisenochek.pj.base.AchievementData;
- import ru.proempire.lisenochek.pj.base.Data;
- import ru.proempire.lisenochek.pj.base.PlayerData;
- import ru.proempire.lisenochek.pj.base.utils.Logger;
- import java.sql.ResultSet;
- import java.sql.SQLException;
- import java.util.ArrayList;
- import java.util.Arrays;
- import java.util.Collections;
- public class SQLManager {
- private static SQLManager manager;
- private SQLManager() {
- manager = this;
- }
- public static SQLManager getManager() {
- return manager == null ? new SQLManager() : manager;
- }
- /*
- Метод инициализации базы данных и добавление в нее таблицы
- */
- public void initSQL() throws SQLException, ClassNotFoundException {
- SQL.getSQL().connect();
- SQL.getSQL().execute("CREATE TABLE IF NOT EXISTS ACHIEVEMENTS_PLAYERS" +
- "(playerName TEXT," +
- "xp INTEGER," +
- "level TEXT," +
- "data TEXT);"
- );
- }
- public void updateData(PlayerData playerData) {
- SQL.getSQL().execute("UPDATE ACHIEVEMENTS SET xp = '" + playerData.getXP() + "', level = '" + playerData.getLevel().name() + "', data = '" + playerData.serialize() + "' WHERE playerName = '" + playerData.getPlayerName() + "'");
- }
- public void loadData(String playerName) {
- boolean isNull = true;
- try {
- ResultSet resultSet = SQL.getSQL().executeQuery("SELECT playerName FROM ACHIEVEMENTS");
- while (resultSet.next()) if (resultSet.getString("playerName").equals(playerName)) isNull = false;
- resultSet.close();
- } catch (Exception e) {
- Logger.getLogger("Что-то пошло не так и произошло исключение:").error();
- e.printStackTrace();
- }
- if (isNull) {
- PlayerData playerData = new PlayerData(playerName, 0, PlayerData.Level.LEVEL_1);
- PlayerData.playersMap.put(playerName, playerData);
- SQL.getSQL().execute("INSERT INTO ACHIEVEMENTS (playerName, xp, level, data) VALUES ('" + playerName + "', '" + playerData.getXP() + "', '" + playerData.getLevel().name() + "', '" + playerData.serialize() + "')");
- return;
- }
- try {
- ResultSet resultSet = SQL.getSQL().executeQuery("SELECT * FROM ACHIEVEMENTS WHERE playerName = '" + playerName + "'");
- while (resultSet.next()) {
- PlayerData playerData = new PlayerData(playerName, resultSet.getInt("xp"), PlayerData.Level.valueOf(resultSet.getString("level")));
- for (String s : resultSet.getString("data").split(" ")) {
- String[] s1 = s.split(":");
- playerData.getAchievementsMap().put(AchievementData.Achievement.valueOf(s1[0]), AchievementData.deserialize(s1[1]));
- }
- PlayerData.playersMap.put(playerName, playerData);
- }
- resultSet.close();
- } catch (Exception e) {
- Logger.getLogger("Что-то пошло не так:").error();
- e.printStackTrace();
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement