データベースに型指定された列がありdouble
、JDBC ResultSet を使用して値を読み取りたいのですが、null である可能性があります。これを行う最善の方法は何ですか?どれもあまり良いとは思えない 3 つのオプションを考えることができます。
オプション 1: 例外処理が冗長で臭いので悪い
double d;
try {
d = rs.getDouble(1);
// do something
} catch(SQLException ex) {
if(rs.wasNull()) {
// do something else
} else {
throw ex;
}
}
オプション 2: フェッチが 2 回なので悪い
s = rs.getString(1); // or getObject()
if(s == null) {
// do something else
} else {
double d = rs.getDouble(1);
// do something
}
オプション 3: SQL 変換ではなく Java が原因で悪い
s = rs.getString(1); // or getObject()
if(s == null) {
// do something else
} else {
double d = Double.parseDouble(s);
// do something
}
どちらの方法が優れているか、または別の優れた方法について何か提案はありますか? また、「Hibernate を使用する」とは言わないでください。ここでは JDBC コードのみに制限されています。