【发布时间】:2010-11-09 08:40:54
【问题描述】:
我的数据库中有一个输入为 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 代码。
【问题讨论】: