forked from IF-LK-2020/wordle
106 lines
3.2 KiB
Java
106 lines
3.2 KiB
Java
public class Query {
|
||
DatabaseConnector db;
|
||
|
||
Query() {
|
||
db = new DatabaseConnector("", 0, "wordle.db", "", "");
|
||
}
|
||
|
||
/**
|
||
* Speichert die Daten des Users aus der Datenbank auf dem User-Objekt
|
||
*
|
||
* @param user
|
||
*/
|
||
public void pullStats(User user) {
|
||
String[][] r;
|
||
db.executeStatement("SELECT * FROM user WHERE user LIKE '"+ user.getUsername() + "'");
|
||
r = db.getCurrentQueryResult().getData();
|
||
user.setCurrentStreak(Integer.parseInt(r[1][0]));
|
||
user.setMaxStreak(Integer.parseInt(r[2][0]));
|
||
user.setWins(Integer.parseInt(r[3][0]));
|
||
user.setTimesPlayed(Integer.parseInt(r[4][0]));
|
||
|
||
int wonInTurn[] = new int[6];
|
||
wonInTurn[0] = Integer.parseInt(r[5][0]);
|
||
wonInTurn[1] = Integer.parseInt(r[6][0]);
|
||
wonInTurn[2] = Integer.parseInt(r[7][0]);
|
||
wonInTurn[3] = Integer.parseInt(r[8][0]);
|
||
wonInTurn[4] = Integer.parseInt(r[9][0]);
|
||
wonInTurn[5] = Integer.parseInt(r[10][0]);
|
||
user.setWonInTurn(wonInTurn);
|
||
|
||
user.setLastDayWOTDPlayed(Integer.parseInt(r[11][0]));
|
||
|
||
}
|
||
|
||
/**
|
||
* Pusht die Daten des Users im Parameter auf die Datenbank
|
||
*
|
||
* @param user
|
||
*/
|
||
public void pushStats(User user) {
|
||
// TODO: Testen und vllt korrigieren
|
||
db.executeStatement("UPDATE INTO Stats (current_streak," + " max_streak, " + "wins, " + "times_played, "
|
||
+ "won_on_1, " + "won_on_2, " + "won_on_3, " + "won_on_4, " + "won_on_5, " + "won_on_6, "
|
||
+ "last_day_WOTD_finished) " + "VALUES (" + Integer.toString(user.getCurrentStreak())
|
||
+ Integer.toString(user.getMaxStreak()) + Integer.toString(user.getWins())
|
||
+ Integer.toString(user.getTimesPlayed()) + Integer.toString(user.getWonInTurnIndex(0))
|
||
+ Integer.toString(user.getWonInTurnIndex(1)) + Integer.toString(user.getWonInTurnIndex(2))
|
||
+ Integer.toString(user.getWonInTurnIndex(3)) + Integer.toString(user.getWonInTurnIndex(4))
|
||
+ Integer.toString(user.getWonInTurnIndex(5)) + Integer.toString(user.getLastDayWOTDPlayed()) + ")"
|
||
+ "WHERE user_username LIKE \"" + user.getUsername() + "\"");
|
||
}
|
||
|
||
/**
|
||
* <20>berpr<70>ft ob es den Username und das Passwort in der Datenbank gibt und
|
||
* gibt den Erfolg als Boolean zur<75>ck
|
||
*
|
||
* @param username
|
||
* @param password
|
||
* @return Boolean true = login erfolgreich false = login fehlgeschlagen
|
||
*/
|
||
public boolean checkLogin(String username, String password) {
|
||
// TODO: testen und vllt korrigieren
|
||
db.executeStatement("SELECT 1 FROM user WHERE username LIKE \"" + username + "\" " + "AND passwort LIKE \""
|
||
+ password + "\"");
|
||
QueryResult r = db.getCurrentQueryResult();
|
||
System.out.println(db.getErrorMessage());
|
||
if (r != null && r.getRowCount() == 1) {
|
||
return true;
|
||
} else {
|
||
return false;
|
||
}
|
||
}
|
||
|
||
/**
|
||
* Gibt ein Zuf<75>lliges Wort aus der Datenbank zur<75>ck
|
||
*
|
||
* @return Ein Word als String
|
||
*/
|
||
public String getWord() {
|
||
// TODO: Methode fertigstellen
|
||
return "12345";
|
||
}
|
||
|
||
/**
|
||
* Gibt das Wordle des Tages, welches aus der Datenbank stammt, zur<75>ck. Ergibt
|
||
* pro Tag immer das gleiche Wordle.
|
||
*
|
||
* @return Das Wort als String
|
||
*/
|
||
public String getWOTD() {
|
||
// TODO: Methode fertigstellen
|
||
return "abcde";
|
||
}
|
||
|
||
/**
|
||
* Pr<50>ft ob das Wort in der Datenbank vorhanden ist
|
||
*
|
||
* @param word ,ein String mit dem Wort
|
||
* @return Boolean
|
||
*/
|
||
public boolean checkWord(String word) {
|
||
// TODO: Methode fertigstellen
|
||
return true;
|
||
}
|
||
}
|