コード例 #1
0
    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()
コード例 #2
0
    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