【问题标题】:ResultSet How to get String from an object when data is null?ResultSet 如何在数据为空时从对象中获取字符串?
【发布时间】:2012-03-17 06:49:52
【问题描述】:

在我的 Oracle 表中有不同类型的列。
我想将所有列读取为数字。

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

问题是如果数据库中的列定义为数字,值是

0.5

返回的字符串将是

.5


我不能使用任何其他吸气剂,如 getDecimal() 等。

如果我使用:

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

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

【问题讨论】:

    标签: java database oracle jdbc resultset


    【解决方案1】:

    你可以使用

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

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

    【讨论】:

    • 因为我只想打印内容,不需要得到正确的对象(我也不想检查每一列的类型(我在设计时不检查列的类型) ))
    【解决方案2】:

    如果您不想看到空字符串而不是空值(String.valueOf())会产生的文字“null”,您可以使用:

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

    【讨论】:

    • 我需要与 resultSet.getString("col1"); 相同的结果返回
    • 我相信 toString() 将与非字符串列上的 getString() 相同。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-02-04
    • 2021-04-07
    • 2019-08-19
    • 2021-05-24
    • 1970-01-01
    • 2013-08-24
    • 2014-03-23
    相关资源
    最近更新 更多