SpringBootでJdbcTemplateを使っていて、結果を逆順に取得したいというケースがあったので備忘録として記録。
order byで逆に取得すればいいのではというつっこみはあると思いますが、単純にorder byで並び替えできないケース(例えば再帰処理(recursive)を使って階層構造を表現した場合等)にまれに遭遇。
使うクラスとメソッド
- SqlRowSet
- jdbcTemplate.queryForRowSet()
コード
SqlRowSet rs = jdbcTemplate.queryForRowSet(sql, param);
rs.afterLast();
while(rs.previous()) {
// ここで逆にとれる
// 例えばrs.getString("name");
}