您的位置:首页 > 其它

rs返回值的问题:getInt方法返回的是数值“0”的解决办法

2017-03-20 18:56 615 查看
问题描述及原因:
rs.getInt方法,若数据库中记录的数值为null,getInt返回的是数值“0”,而不是null!
long java.sql.ResultSet.getLong(String columnLabel)
int java.sql.ResultSet.getInt(String columnLabel)

 等均为:“若数据库中记录的数值为null,返回数值“0”,而不是null”!
因此,
“category.setIsLeaf(rs.getInt("IS_LEAF"));”

 执行后,category的isLeaf属性不可能为NULL
如想让category的isLeaf属性有NULL值,就需要其它处理了
jdk中的相关解释:
int java.sql.ResultSet.getInt(String columnLabel) throws SQLException
Retrieves the value of the designated column in the current row of this ResultSet object as an int 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 0
Throws:
SQLException - if the columnLabel is not valid; if a database access error occurs or this method is called on a closed result set
解决方案:
我个人是加上判断,代码如下:
ResultSet rs = statement.executeQuery("select Id from table");
Integer id = 0;
if (rs.getObject("Id") != null) {
id = rs.getInt("Id");
} else {
id = null;
}

 
 通过获取对象来首先判断其是否为空,然后再用对应的getXXX方法得到具体的值。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐