Na maioria dos bancos de dados, você não pode parametrizar nomes de objetos como nomes de tabelas, no MySQL você teoricamente pode, pois o MySQL Connector/J por padrão não usa parâmetros do lado do servidor, mas reescreve a consulta antes de enviá-la ao servidor. No entanto, o valor será inserido como uma string entre aspas e os nomes dos objetos não podem ser uma string entre aspas, portanto, ainda não funcionará.
Então
INSERT INTO ?
ou SELECT ... FROM ?
não funcionará, pois produz INSERT INTO 'theTable'
ou SELECT ... FROM 'theTable'
. Os nomes dos objetos precisam fazer parte da consulta real. Não use parâmetros para eles. A maioria dos outros bancos de dados (ou seus drivers) teria gerado uma exceção por ter um parâmetro nesta posição.