我正在向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,但我更希望它不测试不必要的条件。
答案 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测试是低效的,除非你能保证你的应用程序将运行的特定数据库/版本,否则它可能是一个好主意。