我在数据库中有一列类型为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代码。
JdbcTemplate
,它会为您处理所有繁琐的null检查。 - Priidu Neemre