2016年10月22日土曜日

<Java>ResultSetからのデータ抽出は、カラム番号ではなくカラム名で!

Javaの小ネタ。実装時にどのメソッドを使うべきか、という低レベルな話です。

ResultSetからのデータ抽出

JavaでデータベースにSQLのSELECT文を流す際、PreparedStatementとResultSetを使います。
ResultSetから値を取り出す際は、引数はカラム番号ではなくカラム名にしましょう。

例えば、ResultSetには、文字列を取り出すメソッドが2つ用意されています。
正確には、オーバーライドされて、カラム番号(int)とカラム名(String)のどちらも引数に取れるということです。

  • String getString(int columnIndex)
  • String getString(String columnLabel)

columnIndex(カラム番号)は、1始まりなので、配列のインデックスと間違えて、ゼロ始まりとしてしまう可能性があります。
また、columnLabel(カラム名)としておけば、可読性も増します。
まとめとして、ResultSetから値を取り出す際は、引数はカラム名を使いましょう。

0 件のコメント:

コメントを投稿