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番目のwasNull()テストは冗長であると思いますか?
私たちを教育し、ありがとう
IF(colName = NULL, 0, colName) AS colName
は、SELECT
ステートメント(できればストアドプロシージャ)に入れることです。哲学的には、これは、DBがアプリに準拠する必要があるか、またはその逆であるかによって決まります。SQLはNULLを簡単に処理し、多くのSQLコンシューマーは処理しないため(つまりjava.sql.ResultSet
)、可能な場合はDBで処理することを選択します。(もちろん、これは概念的にNULLと0があなたの目的にとって同等であることを前提としています。)