如何在 JDBC 中从 resultSet 中读取可能为空的双精度值?
我的数据库中有一列是键入的,我想使用JDBC ResultSet从中读取值,但它可能为空。最好的方法是什么?我能想到三个选项,其中没有一个看起来很好。double
选项 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
}
关于哪种方式更好的建议,或者是否有另一种更好的方法?请不要说“使用休眠”,我只限于JDBC代码在这里。