2012-02-27 54 views
3

在我的Oracle表中有不同类型的列。
我想阅读所有列为数字。ResultSet如何在数据为null时从对象中获取字符串?

String str = resultSet.getString("col1"); 

的问题是,如果在数据库中列定义为号码,和值是

0.5

返回字符串将是

0.5


我不能使用任何其他吸气像getDecimal()

如果我使用:

String str = resultSet.getObject("col1").toString(); 

我会得到一个异常,如果该值为null。

回答

4

你可以使用

String str = String.valueOf(resultSet.getObject("col1")); 

一个简单的解决方法,以避免任何异常。 (不知道为什么你不能使用resultSet.getDouble("col1")虽然)。

+0

,因为我只想要打印的内容,没有必要让合适的对象(我也不想检查每列的类型(我也不列的类型设计时间)) – markiz 2012-02-27 19:51:49

+0

@markiz,好的。我懂了。 – aioobe 2012-02-27 19:52:52

1

如果你不希望看到一个空字符串,而不是字面的“空”为空值(这是String.valueOf())会产生,你可以使用方法:

Object value = resultSet.getObject("col1") 
String str = value == null ? "" : value.toString(); 
+0

我需要与resultSet.getString(“col1”); 返回 – markiz 2012-02-27 20:16:38

+0

我相信toString()将与非字符串列上的getString()相同。 – 2012-02-27 20:20:29

相关问题