Ti sei innamorato della confusa gerarchia dei tipi di PreparedStatement extends Statement :
PreparedStatement ha lo stesso execute*(String) metodi come Statement , ma non dovrebbero essere usati, basta usare senza parametri execute*() metodi di PreparedStatement --- hai già fornito la stringa di query effettiva da eseguire utilizzando conn.prepareStatement() .