Премахнете кавичките около ?
Заместители на PreparedStatement. JDBC драйверът ще цитира низовете вместо вас. Когато сами цитирате заместващия низ, драйверът на JDBC смята, че искате да предадете литерал ?
във вашето изявление.
Не сте споменали базата данни, която използвате, но основният автор на MySQL JDBC драйвер потвърждава това тук:http://forums.mysql.com/read.php?39,499385,499450#msg-499450