我有一个检索对象类型并将其转换为双精度值的查询。这是我的做法:
Double.valueOf(rs.getObject("price").toString()).doubleValue()));
但是,如果 DB 中的价格数据为 NULL,则会出现错误:NullPointerException。
我该如何处理?如果它为 NULL,我只想将其留空。
我想问题是当它为空时,Java 无法转换为字符串或 doubleValue(),我该如何防止这种情况发生?
如果您发现它为空,请检查它,然后null
不要rs.getObject("price")
执行上述操作,只需将其保留为您想要的默认值(空白或其他)
如果找不到合适的值,NumberFormatException
也可以在转换为时处理它String
Double
Before you do anything with it, just check and make sure that it's not null -
Object obj = rs.getObject("price");
if(obj != null) {
double doubleVal = Double.parseDouble(obj.toString());
else {
//some default value or exception
}
In case the default is going to be 0 then you can just use ResultSet#getDouble()
method.
Returns: the column value; if the value is SQL NULL, the value returned is 0