por que obtenho um erro de sintaxe na instrução preparada? [duplicado

Esta pergunta já tem uma resposta aqui:

preparedStatement erro de sintaxe 2 respostas

Eu escrevi uma declaração preparada, mas está dando um erro de sintaxe em?. Não consigo entender o que há de errado. Ele deve passar o nome de um filme e obter o resultado como diretores desse filme

stmt=getConnection().createStatement();
        String sql="SELECT directors FROM moviedata WHERE moviedata.title = ?";
        PreparedStatement preparedStatement=conn.prepareStatement(sql);
        preparedStatement.setString(1,movieName);
        rs=preparedStatement.executeQuery(sql);

questionAnswers(2)

yourAnswerToTheQuestion