def find_by_person_id(self, person_key: int):
        """Auslesen aller Lerngruppen-Objekte der gegebenen Person ID

        :param person_key: Person ID
        :return: Sammlung aller Lerngruppen-Objekte, der gegebenen Person ID
        """
        result = []
        cursor = self._cnx.cursor()
        cursor.execute(
            "SELECT L.id, L.erstellungszeitpunkt, L.gruppenname, L.profil_id, L.konversation_id "
            "FROM lerngruppen AS L LEFT OUTER JOIN gruppen_teilnahmen AS R "
            "ON R.gruppen_id=L.id "
            "WHERE R.person_id={}".format(person_key)
        )
        tuples = cursor.fetchall()

        for (
            id,
            erstellungszeitpunkt,
            gruppenname,
            profil_id,
            konversation_id,
        ) in tuples:
            lerngruppe = Lerngruppe()
            lerngruppe.set_id(id)
            lerngruppe.set_erstellungszeitpunkt(erstellungszeitpunkt)
            lerngruppe.set_gruppenname(gruppenname)
            lerngruppe.set_profil_id(profil_id)
            lerngruppe.set_konversation_id(konversation_id)
            result.append(lerngruppe)

        self._cnx.commit()
        cursor.close()

        return result  # Rückgabe der Sammlung aller Lerngruppe-Objekte
    def find_by_key(self, key: int):
        """Auslesen einer Lerngruppe mit vorgegebener Lerngruppen ID

        :param key: Lerngruppen ID
        :return: Sammlung aller Lerngruppen-Objekte
        """

        result = None
        cursor = self._cnx.cursor()
        command = (
            "SELECT id, erstellungszeitpunkt, gruppenname, profil_id, konversation_id FROM "
            "lerngruppen WHERE id={}".format(key)
        )
        cursor.execute(command)
        tuples = cursor.fetchall()

        try:
            (id, erstellungszeitpunkt, gruppename, profil_id, konversation_id) = tuples[
                0
            ]
            lerngruppe = Lerngruppe()
            lerngruppe.set_id(id)
            lerngruppe.set_erstellungszeitpunkt(erstellungszeitpunkt)
            lerngruppe.set_gruppenname(gruppename)
            lerngruppe.set_profil_id(profil_id)
            lerngruppe.set_konversation_id(konversation_id)
            result = lerngruppe

        except IndexError:  # Wenn eine leere Sequenz zurückgegeben wird (tuples).
            result = None

        self._cnx.commit()
        cursor.close()

        return result  # Der Rückgabe der ID entsprechendes Lerngruppe-Objekt (None bei fehlender DB-Tupel)
    def find_by_konversation_id(self, konversation_key: int):
        """Auslesen aller Lerngruppen-Objekte der gegebenen Konversation ID

        :param konversation_key: Konversation ID
        :return: Sammlung aller Lerngruppen-Objekte, der gegebenen Konversation ID
        """
        result = []
        cursor = self._cnx.cursor()
        cursor.execute(
            "SELECT id, erstellungszeitpunkt, gruppenname, profil_id, konversation_id FROM "
            "lerngruppen WHERE konversation_id={}".format(konversation_key)
        )
        tuples = cursor.fetchall()

        for (
            id,
            erstellungszeitpunkt,
            gruppenname,
            profil_id,
            konversation_id,
        ) in tuples:
            lerngruppe = Lerngruppe()
            lerngruppe.set_id(id)
            lerngruppe.set_erstellungszeitpunkt(erstellungszeitpunkt)
            lerngruppe.set_gruppenname(gruppenname)
            lerngruppe.set_profil_id(profil_id)
            lerngruppe.set_konversation_id(konversation_id)
            result.append(lerngruppe)

        self._cnx.commit()
        cursor.close()

        return result  # Rückgabe der Sammlung aller Lerngruppe-Objekte
    def find_all(self):
        """Auslesen aller Lerngruppe-Objekte

        :return: Sammlung aller Lerngruppen-Objekte
        """
        result = []
        cursor = self._cnx.cursor()
        cursor.execute("SELECT * from lerngruppen")  # SQL Statement
        tuples = cursor.fetchall()

        for (
            id,
            erstellungszeitpunkt,
            gruppenname,
            profil_id,
            konversation_id,
        ) in tuples:
            lerngruppe = Lerngruppe()
            lerngruppe.set_id(id)
            lerngruppe.set_erstellungszeitpunkt(erstellungszeitpunkt)
            lerngruppe.set_gruppenname(gruppenname)
            lerngruppe.set_profil_id(profil_id)
            lerngruppe.set_konversation_id(konversation_id)
            result.append(lerngruppe)

        self._cnx.commit()
        cursor.close()

        return result  # Rückgabe der Sammlung aller Lerngruppe-Objekte
        """
        cursor = self._cnx.cursor()

        command = "DELETE FROM lerngruppen WHERE id={}".format(lerngruppe.get_id())
        cursor.execute(command)

        self._cnx.commit()
        cursor.close()


"""Testing für Klasse"""
if __name__ == "__main__":
    with LerngruppeMapper() as mapper:

        test = Lerngruppe()
        test.set_gruppenname("Funky Java Kurs")
        test.set_profil_id(7)
        test.set_konversation_id(7)

        #   Methode insert
        print("Test der Methode: .insert")
        mapper.insert(test)

        #   Methode find_all
        print("Test der Methode: find_all")
        result = mapper.find_all()
        for r in result:
            print(r.__dict__)

        #   Methode find_by_key
        print("Test der Methode: .find_by_key")