/**
   * deze methode zoekt de trainer op van de opgegeven ploeg
   *
   * @param ploegnaam de naam van de ploeg waarvan je de trainer wilt zoeken
   * @return
   * @throws DBException
   */
  public Persoon getTrainer(String ploegnaam) throws DBException {
    try (Connection conn = ConnectionManager.getConnection(); ) {

      // preparedStatement opstellen (en automtisch sluiten)
      try (PreparedStatement stmt =
          conn.prepareStatement(
              "select id,naam,voornaam,geboortedatum,isTrainer,opmerking from persoon where id in (select trainer_id from ploeg where id in (select id from ploeg where naam='?'))"); ) {
        // execute voert elke sql-statement uit, executeQuery enkel de eenvoudige
        stmt.execute();
        // result opvragen (en automatisch sluiten)
        try (ResultSet r = stmt.getResultSet()) {
          Persoon k = new Persoon();
          while (r.next()) {

            k.setId(r.getInt("id"));
            k.setNaam(r.getString("naam"));
            k.setVoornaam(r.getString("voornaam"));
            k.setGeboortedatum(r.getDate("geboortedatum"));
            k.setTrainer(r.getBoolean("isTrainer"));
            k.setOpmerking(r.getString("opmerking"));
          }
          return k;
        } catch (SQLException sqlEx) {
          throw new DBException(
              "SQL-exception in getTrainer (String ploegnaam) - resultset" + sqlEx);
        }
      } catch (SQLException sqlEx) {
        throw new DBException("SQL-exception in getTrainer (String ploegnaam) - statement" + sqlEx);
      }
    } catch (SQLException sqlEx) {
      throw new DBException("SQL-exception in getTrainer (String ploegnaam) - connection" + sqlEx);
    }
  }
  /**
   * deze methode geeft een ArrayList terug waarin alle spelers van de opgegeven ploeg zitten
   *
   * @param id het id van de ploeg waarvan je alle spelers wilt opvragen
   * @return
   * @throws DBException
   */
  public ArrayList<Persoon> zoekSpelersPloeg(int id) throws DBException {

    ArrayList<Persoon> sp = new ArrayList<>();
    // connectie tot stand brengen (en automatisch sluiten)
    try (Connection conn = ConnectionManager.getConnection(); ) {
      // preparedStatement opstellen (en automtisch sluiten)
      try (PreparedStatement stmt =
          conn.prepareStatement(
              "select id, naam, voornaam, geboortedatum, isTrainer,ploeg_id from persoon where isTrainer=\"false\" and ploeg_id in(select id from ploeg where id=?)"); ) {
        stmt.setInt(1, id);
        // execute voert elke sql-statement uit, executeQuery enkel de eenvoudige
        stmt.execute();
        // result opvragen (en automatisch sluiten)
        try (ResultSet r = stmt.getResultSet()) {
          // van alle spelers uit de database Persoon-objecten maken

          while (r.next()) {
            Persoon k = new Persoon();
            k.setId(r.getInt("id"));
            k.setNaam(r.getString("naam"));
            k.setVoornaam(r.getString("voornaam"));
            k.setGeboortedatum(r.getDate("geboortedatum"));
            k.setTrainer(r.getBoolean("isTrainer"));
            if (r.getObject("ploeg_id") == null) {
              k.setPloegid(null);
            } else {
              k.setPloegid(r.getInt("ploeg_id"));
            }

            sp.add(k);
          }

          return sp;
        } catch (SQLException sqlEx) {
          throw new DBException("SQL-exception in zoekSpelersPloeg(int id) - resultset" + sqlEx);
        }
      } catch (SQLException sqlEx) {
        throw new DBException("SQL-exception in zoekSpelersPloeg(int id)n - statement" + sqlEx);
      }
    } catch (SQLException sqlEx) {
      throw new DBException("SQL-exception in zoekSpelersPloeg(int id) - connection" + sqlEx);
    }
  }