def update(self, person: Person): """Aktualisieren eines Person-Objekts in der Datenbank anhand seiner ID :param person: Das Person-Objekt, das in der Datenbank übergeschrieben werden soll """ cursor = self._cnx.cursor() command = ( "UPDATE personen SET `name`=%s, email=%s, google_user_id=%s, `alter`=%s, wohnort=%s, studiengang=%s, " "semester=%s, profil_id=%s WHERE id=%s") data = ( person.get_name(), person.get_email(), person.get_google_user_id(), person.get_alter(), person.get_wohnort(), person.get_studiengang(), person.get_semester(), person.get_profil_id(), person.get_id(), ) cursor.execute(command, data) self._cnx.commit() cursor.close()
def delete(self, person: Person): """Löschen der Daten eines Person-Objekts aus der Datenbank. :param person: Das aus der Datenbank zu löschende Person-Objekt """ cursor = self._cnx.cursor() command = "DELETE FROM personen WHERE id={}".format(person.get_id()) cursor.execute(command) self._cnx.commit() cursor.close()
def insert(self, person: Person): """Einfügen eines Person-Objekts in die Datenbank. Der Primärschlüssel wird dabei überprüft und ggf. berechtigt. :param: person: Das zu speichernde Person-Objekt :return: Das bereits übergebene Person-Objekt, jeodch mit ggf, korrigierter ID. """ cursor = self._cnx.cursor() cursor.execute("SELECT MAX(id) AS maxid FROM personen") tuples = cursor.fetchall() for maxid in tuples: if maxid[0] is not None: person.set_id(maxid[0] + 1) else: person.set_id(1) command = ( "INSERT INTO personen (id, erstellungszeitpunkt, name, email, google_user_id, `alter`, wohnort, " "studiengang, semester, profil_id) VALUES (%s,%s,%s,%s,%s,%s,%s,%s,%s,%s)" ) data = ( person.get_id(), person.get_erstellungszeitpunkt(), person.get_name(), person.get_email(), person.get_google_user_id(), person.get_alter(), person.get_wohnort(), person.get_studiengang(), person.get_semester(), person.get_profil_id(), ) cursor.execute(command, data) self._cnx.commit() cursor.close() return person