我的数据库中有一个已键入的列,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 代码。