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:http://forums.mysql.com/read.php?39,499385,499450#msg-499450