private Connection connection = SQLiteManager.getConnection();
private PreparedStatement ps;
private ResultSet rs;
No to chyba to jest największym problemem i przyczyną dlaczego to nie działa, trzy z tych rzeczy automatycznie się zamykają przy try-with-resources i średnio bezpieczne jest przypisywanie jednego pola prepared statement pod 10 różnych zapytań. Lepiej w każdej metodzie osobno w parametrach try pobierać połączenie na nowo i tworzyć w nich odpowiednią zmienną prepared statement, wtedy będziesz miał pewność, że nie będzie jakichś niespodziewanych timeoutów lub zamkniętych połączeń przed ich użyciem.
Abstrahując od samego stacktrace, popełniasz ogromny błąd nie escape'ując tych zmiennych w zapytaniach, narażasz się na SQL Injection. Poniżej jest przykładowy kod który miałby to, o czym wspomniałem wyżej.
public void increaseDeaths(){
this.deaths++;
try {
ps = connection.prepareStatement("UPDATE 'players' SET Deaths="+this.deaths+" WHERE UUID LIKE '"+this.uuid+"';");
ps.execute();
} catch (SQLException e) {
e.printStackTrace();
}
}
Zamienić na np.:
public void increaseDeaths(){
this.deaths++;
try (Connection connection = SQLiteManager.getConnection();
PreparedStatement statement = connection.preparedStatement("UPDATE 'players' SET Deaths=? WHERE UUID LIKE ?;") {
statement.setInteger(1, this.deaths);
statement.setString(2, this.uuid.toString());
statement.executeUpdate();
} catch (SQLException e) {
e.printStackTrace();
}
}
Nie mam pojęcia czy to połączenie tutaj się nie wykrzaczy z tego powodu, że getConnection() zwraca w tym przypadku zainicjowane połączenie które nawet nie tyka Hikari w żaden sposób, ale na SQLite zbytnio się nie znam więc to takie gdybanie.
Moim zdaniem powinieneś na pewno odrobinę popracować nad strukturą tego "modelu". StorePlayer mógłby być zwykłym POJO i zawierać podstawowe pola oraz gettery takie jak znajdują się powyżej, nie łącząc tego w jednej klasie z pewnego rodzaju repozytorium. Zamiast inkrementować w taki sposób śmierci w jakiejś metodzie increaseDeaths(), mógłbyś zrobić sobie klasę która by obrała za argument uuid gracza i na jego podstawie zwiększać liczbę.