Remova as aspas ao redor do
? Espaços reservados PreparedStatement. O driver JDBC citará as strings para você. Quando você mesmo cita o espaço reservado da string, o driver JDBC pensa que você deseja passar um literal ? em sua declaração. Você não mencionou o banco de dados que está usando, mas o autor principal do driver MySQL JDBC confirma isso aqui:https://forums.mysql.com/read.php?39,499385,499450#msg-499450