executeQuery(sql)を呼び出すことによって 実際にStatementでメソッドを呼び出します -PreparedStatementにはありません 。したがって、すでに割り当てられているパラメータ値を破棄し、プレースホルダー?でクエリを実行します。 解析されないままなので、そのエラーが発生します。
変更
ResultSet results = state.executeQuery(sql);
ResultSet results = state.executeQuery();
そして、あなたは大丈夫なはずです。
(そして原因
resultname = state2.executeQuery(sql2);
する必要があります
resultname = state2.executeQuery();
同様に)