Você caiu na confusa hierarquia de tipos de
PreparedStatement extends Statement :PreparedStatement tem o mesmo execute*(String) métodos como Statement , mas eles não devem ser usados, apenas use o sem parâmetros execute*() métodos de PreparedStatement --- você já forneceu a string de consulta real para executar usando conn.prepareStatement() .