/**
   * deze methode koppelt de opgegeven trainer aan de opgegeven ploeg
   *
   * @param naam de naam van de trainer
   * @param voornaam de voornaam van de trainer
   * @param ploegnaam de ploegnaam van de ploeg
   * @throws DBException
   * @throws ApplicationException
   */
  public void toevoegenTrainerPloeg(String naam, String voornaam, String ploegnaam)
      throws DBException, ApplicationException {

    Persoon persoon = persoonDB.zoekPersoon(naam, voornaam);
    Ploeg ploeg = zoekPloeg(ploegnaam);
    toevoegenTrainerPloeg(persoon.getId(), ploeg.getId());
  }
  // TODO add test methods here.
  // The methods must be annotated with annotation @Test. For example:
  //
  // @Test
  // public void hello() {}
  @Test
  public void toevoegenPloegMetTrainer() throws Exception {

    Persoon drie = new Persoon();
    drie.setVoornaam("Marnisito");
    drie.setNaam("Chulo");

    drie.setGeboortedatum(1989, 8, 1);

    drie.setTrainer(true);

    persoonDB.toevoegenPersoon(drie);

    Ploeg ploeg = new Ploeg();
    ploeg.setCategorie(Categorie.U6);
    ploeg.setNaam("las mamasitas");

    Persoon p = persoonDB.zoekPersoon(drie.getNaam(), drie.getVoornaam());
    ploeg.setTrainer(p.getId());

    ploegDB.toevoegenPloeg(ploeg);
  }
  /**
   * deze methode koppelt de opgegeven speler aan de opgegeven ploeg
   *
   * @param ploegnaam De ploeg waaraan je een speler wilt koppelen.
   * @param persoon De persoon die je aan een ploeg wilt koppelen.
   * @throws DBException
   * @throws exception.ApplicationException
   */
  public void toevoegenSpelerPloeg(String ploegnaam, Persoon persoon)
      throws DBException, ApplicationException {
    Persoon p = persoonDB.zoekPersoon(persoon);
    // connectie tot stand brengen (en automatisch sluiten)
    try (Connection conn = ConnectionManager.getConnection(); ) {
      // preparedStatement opstellen (en automtisch sluiten)
      try (PreparedStatement stmt =
          conn.prepareStatement(
              "update persoon set ploeg_id=(select id from ploeg where naam=?) where id=?;"); ) {
        stmt.setString(1, ploegnaam);
        stmt.setInt(2, p.getId());

        stmt.execute();

      } catch (SQLException sqlEx) {
        throw new DBException(
            "SQL-exception in toevoegenSpelerPloeg(String naam,PersoonBag p) - statement" + sqlEx);
      }
    } catch (SQLException sqlEx) {
      throw new DBException(
          "SQL-exception in toevoegenSpelerPloeg(String naam,PersoonBag p) - connection" + sqlEx);
    }
  }
  /**
   * deze methode ontkoppelt de opgegeven speler van de ploegen waarin hij zit
   *
   * @param naam De naam van de speler die je wilt ontkoppelen
   * @param voornaam De voornaam van de speler die je wilt ontkoppelen
   * @throws DBException
   * @throws exception.ApplicationException
   */
  public void verwijderSpelerPloeg(String naam, String voornaam)
      throws DBException, ApplicationException {

    Persoon p = persoonDB.zoekPersoon(naam, voornaam);
    verwijderSpelerPloeg(p.getId());
  }