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