You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

MySQL JDBC中resultSet.getObject(Long)遇NULL返回0是否异常?Oracle表现正常

MySQL与Oracle JDBC处理NULL值的差异问题解析

我来梳理下你遇到的这个JDBC驱动处理NULL值的差异情况:

  • 先说MySQL JDBC里的resultSet.getInt(index):
    这个方法返回的是基本类型int,不是包装类java.lang.Integer。因为基本类型没办法承载NULL值,所以当结果集对应列是NULL时,它就只能返回0,这个其实是符合基本类型特性的预期行为。

  • 但MySQL JDBC里的resultSet.getObject(index, java.lang.Long)就有点坑了:
    明明结果集列的类型是java.lang.Long这种支持NULL的包装类,但碰到NULL值时居然也返回0,这完全不符合预期——按道理包装类应该能正常返回null才对。

而测试Oracle 11g的JDBC驱动时,调用resultSet.getObject(index, java.lang.Long)遇到NULL值,是可以正常返回null的,这就明显看出两个数据库JDBC驱动在这个场景下的行为差异了。

内容的提问来源于stack exchange,提问作者eastwater

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.21 03:55:31