Java ResultSet から null int 値をチェックする 質問する

Java ResultSet から null int 値をチェックする 質問する

Java では、列がプリミティブint型にキャストされている ResultSet から null 値をテストしようとしています。

int iVal;
ResultSet rs = magicallyAppearingStmt.executeQuery(query);
if (rs.next()) {
  if (rs.getObject("ID_PARENT") != null && !rs.wasNull()) {
    iVal = rs.getInt("ID_PARENT");
  }
}

上記のコードから、これを行うより良い方法はありますか?2番目の方法だと思います。null() だったテストは冗長ですか?

教育してください、ありがとう

ベストアンサー1

ResultSet.getIntフィールド値が の場合のデフォルトでNULLは が返されます0が、これは宣言のデフォルト値でもありますiVal。その場合、テストは完全に冗長になります。

フィールド値が NULL の場合に実際に何か別のことをしたい場合は、次の方法をお勧めします。

int iVal = 0;
ResultSet rs = magicallyAppearingStmt.executeQuery(query);
if (rs.next()) {
    iVal = rs.getInt("ID_PARENT");
    if (rs.wasNull()) {
        // handle NULL field value
    }
}

(以下の @martin のコメントとして編集済み。記述された OP コードはiVal初期化されていないためコンパイルされません)

おすすめ記事