public DirectedMovies getDirectedMovieById(int directedMovieId) throws SQLException {
   String selectDirectedMovie =
       "SELECT DirectedMovieId, DirectorId, MovieId "
           + "FROM DirectedMovies "
           + "WHERE DirectedMovieId=?;";
   Connection connection = null;
   PreparedStatement selectStmt = null;
   ResultSet results = null;
   try {
     connection = connectionManager.getConnection();
     selectStmt = connection.prepareStatement(selectDirectedMovie);
     selectStmt.setInt(1, directedMovieId);
     results = selectStmt.executeQuery();
     DirectorsDao directorDao = DirectorsDao.getInstance();
     MoviesDao movieDao = MoviesDao.getInstance();
     if (results.next()) {
       int resultDirectedMovieId = results.getInt("DirectedMovieId");
       int directorId = results.getInt("DirectorId");
       int movieId = results.getInt("MovieId");
       Movies movie = movieDao.getMovieById(movieId);
       Directors director = directorDao.getDirectorById(directorId);
       DirectedMovies directedMovie = new DirectedMovies(resultDirectedMovieId, director, movie);
       return directedMovie;
     }
   } catch (SQLException e) {
     e.printStackTrace();
     throw e;
   } finally {
     if (connection != null) {
       connection.close();
     }
     if (selectStmt != null) {
       selectStmt.close();
     }
     if (results != null) {
       results.close();
     }
   }
   return null;
 }
 public DirectedMovies delete(DirectedMovies directedMovie) throws SQLException {
   String deleteDirectedMovie = "DELETE FROM DirectedMovies WHERE DirectedMovieId=?;";
   Connection connection = null;
   PreparedStatement deleteStmt = null;
   try {
     connection = connectionManager.getConnection();
     deleteStmt = connection.prepareStatement(deleteDirectedMovie);
     deleteStmt.setInt(1, directedMovie.getDirectedMovieId());
     deleteStmt.executeUpdate();
     return null;
   } catch (SQLException e) {
     e.printStackTrace();
     throw e;
   } finally {
     if (connection != null) {
       connection.close();
     }
     if (deleteStmt != null) {
       deleteStmt.close();
     }
   }
 }
 public DirectedMovies create(DirectedMovies directedMovie) throws SQLException {
   String insertDirectedMovie = "INSERT INTO DirectedMovies(DirectorId, MovieId) VALUES(?,?);";
   Connection connection = null;
   PreparedStatement insertStmt = null;
   ResultSet resultKey = null;
   try {
     connection = connectionManager.getConnection();
     insertStmt =
         connection.prepareStatement(insertDirectedMovie, Statement.RETURN_GENERATED_KEYS);
     insertStmt.setInt(1, directedMovie.getDirector().getDirectorId());
     insertStmt.setLong(2, directedMovie.getMovie().getMovieId());
     insertStmt.executeUpdate();
     resultKey = insertStmt.getGeneratedKeys();
     int directedMovieId = -1;
     if (resultKey.next()) {
       directedMovieId = resultKey.getInt(1);
     } else {
       throw new SQLException("Unable to retrieve auto-generated key.");
     }
     directedMovie.setDirectedMovieId(directedMovieId);
     ;
     return directedMovie;
   } catch (SQLException e) {
     e.printStackTrace();
     throw e;
   } finally {
     if (connection != null) {
       connection.close();
     }
     if (insertStmt != null) {
       insertStmt.close();
     }
     if (resultKey != null) {
       resultKey.close();
     }
   }
 }