Ha caído en la confusa jerarquía de tipos de PreparedStatement extends Statement :
PreparedStatement tiene el mismo execute*(String) métodos como Statement , pero se supone que no deben usarse, solo use el sin parámetros execute*() métodos de PreparedStatement --- ya ha dado la cadena de consulta real para ejecutar usando conn.prepareStatement() .