resultSet.getString()为null值返回什么

时间:2014-05-12 14:51:12

标签: java db2

我正在向DB查询一些在DB中可能为null的值。当我在resultSet上调用getString()时,如果DB值为null,那么getString返回的值是多少?这是javadoc:

Retrieves the value of the designated column in the current row of this ResultSet       
object as a String in the Java programming language.

Parameters:
columnLabel the label for the column specified with the SQL AS clause. If the SQL AS      
clause was not specified, then the label is the name of the column
Returns:
the column value; if the value is SQL NULL, the value returned is null
Throws:
SQLException - if the columnLabel is not valid; if a database access error occurs or    
this    method is called on a closed result set

它表示返回的值为null,但我不确定这是否意味着“null”或null。我知道我可以让我的代码显然测试两个值,看它是null,但我更希望它不测试不必要的条件。

2 个答案:

答案 0 :(得分:0)

  

它表示返回的值为null,但我不确定这是否意味着" null"或null

在标准的java库中,如果曾经说过"可以返回null",则表示引用,即null

  

但我希望不测试不必要的条件。

在java中,如果你处理null通常情况下最好还是检查,即使找到null的机会很小。

答案 1 :(得分:-1)

在Windows 10上使用mariadb 5.5的jdbc - 空列getString()返回字符串值" null",并在rs.wasNull()返回false后立即调用rs.getString()

注意:我用查询双重检查数据库" ... WHERE my-column-name IS NULL"确认数据库实际上是将其存储为null。

因此,虽然住在象牙塔并且始终信任javadocs很好,但没有什么比自己写快速测试更好了。虽然我同意编码多个null测试是低效的,除非你能保证你的应用程序将运行的特定数据库/版本,否则它可能是一个好主意。