'sera a tutti, torno a tormentarvi

Allora, vorrei selezionare dal mio db tutti gli snippet_name nel cui codice ci sono le parole chaive inserite dall'utente.

Ho fatto una prova dal terminale di derby (il dbms che uso) con questa query:

codice:
select distinct snippet_name
from snippets
where snippet_code like '%swing%'
Eseguendo questa query ottengo il nome di tutti gli snippet che nel codice contengono "swing" (e quindi funziona correttamente).

Ho provato poi a scrivere il seguente codice java:

codice:
    public String[] searchIntoCode(String[] keywords) {
        // preparo la sfilza di condizioni da usare per la selezione 
        String whereClause = "";
        for (int i = 0; i < keywords.length - 1; i++) {
            whereClause += "snippet_code like '%?%' or ";
        }
        whereClause += "snippet_code like '%?%'";

        try {
            PreparedStatement preparedStatement = connection.prepareStatement(
                    "select distinct snippet_name " +
                    "from snippets where " + whereClause);

            // "sostituisco" i "?"  con la parola da cercare
            for (int i = 0; i < keywords.length; i++) {
                preparedStatement.setString(i + 1, keywords[i]);
            }

            // effettuo la query
            ResultSet resultSet = preparedStatement.executeQuery();

            .... // altro codice che estrae i dati dal result set
Problema: questo codice non funziona! Eseguendolo infatti ottengo questa eccezione:

java.sql.SQLException: No input parameters.

Penso che il problema sia in '%?%'. Ho guardato nella guida di derby ma non ho trovato esempi che possano essermi d'aiuto.. Qualcuno ha qualche idea?

Il seguente codice funziona ma devo rinunciare al PreparedStatement (e non posso).

codice:
     String whereClause = "";
        for (int i = 0; i < keywords.length - 1; i++) {
            whereClause += "snippet_code like '%" + keywords[i] + "%' or ";
        }

        whereClause += "snippet_code like '%" + keywords[keywords.length - 1] + "%'"; 
            Statement statement = connection.createStatement("select distinct snippet_name from snippets where " + whereClause);
            statement.executeQuery(whereClause);

Grazie a chiunque mi aiuterà