В моей базе данных есть столбец с типом double
, и я хочу прочитать значение из него с помощью JDBC ResultSet, но он может быть нулевым. Каков наилучший способ сделать это? Я могу придумать три варианта, ни один из которых не кажется очень хорошим.
Вариант 1: Плохо, потому что обработка исключений многословна и вонюч
double d;
try {
d = rs.getDouble(1);
// do something
} catch(SQLException ex) {
if(rs.wasNull()) {
// do something else
} else {
throw ex;
}
}
Вариант 2: Плохо, потому что две выборки
s = rs.getString(1); // or getObject()
if(s == null) {
// do something else
} else {
double d = rs.getDouble(1);
// do something
}
Вариант 3: Плохо, потому что Java, а не преобразование SQL
s = rs.getString(1); // or getObject()
if(s == null) {
// do something else
} else {
double d = Double.parseDouble(s);
// do something
}
Какие-либо предложения о том, какой путь лучше, или есть другой превосходный способ? И, пожалуйста, не говорите «Используйте Hibernate», я ограничен кодом JDBC только здесь.