MySQLで検索条件にヒットするレコードを1件だけ取得したい場合、limitを利用します。Oracleならrownum、新しめのSybaseならtopなどですね。これらの条件句の詳細は割愛しますが、これらの違いはマルチプラットフォーム化の障壁になります。

そこで、JDBCの出番です。素晴しいことに、Statement#setMaxRows()というメソッドが用意されています。引数に取得する件数を渡すだけで、limitやrownumなどのRDB間の差異をJDBCが吸収してくれます。例えばこんな感じです。

» 続きを読む