Spring Framework の JdbcTemplate を使ってて、こんなんでました。

java.sql.SQLException: 列索引が無効です。

[commons-dbutils] エラー:列索引が無効です。 – メモ!メモ! – Yahoo!ブログ

によると、

PreparedStatementのプレースホルダの数と、設定しているパラメータの数が合っていない。

らしい。

が、数は有っている。

散々悩んだ挙句、ResultSetのgetXX の引数が、途中で間違ってた。

こんな感じ。

bean.setValue1(rs.getString(1));
    bean.setValue2(rs.getString(2));
    bean.setValue8(rs.getString(8));
    bean.setValue4(rs.getString(4));
    bean.setValue5(rs.getString(5));
    bean.setValue6(rs.getString(6));

実際は、列の数が200以上ある様なケースだったので、なかなか判らなかったのだ。

自戒の意味を込めて、書いておこう。