从 ResultSet 获取 Integer 对象

发布于 2024-11-05 07:17:59 字数 226 浏览 0 评论 0原文

ResultSet 提供返回原始 int 的方法 getInt()。是否可以获得允许 nullInteger 对象?我正在检索的数据库字段可为空,只要该字段为 nullgetInt() 就会返回 0

谢谢

A ResultSet provides method getInt() that returns primitive int. Is it possible to obtain the Integer object, which permits null? The DB field I'm retrieving is nullable and getInt() returns me 0 whenever the field is null.

Thanks

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

誰認得朕 2024-11-12 07:17:59

只需检查该字段是否为 null 或不使用 ResultSet#getObject()

Integer foo = resultSet.getObject("foo") != null ? resultSet.getInt("foo") : null;

或者,如果您可以保证使用正确的数据库列类型,以便 ResultSet#getObject() 真正返回 Integer (因此不是 Long >、ShortByte),那么您也可以直接对其进行类型转换。

Integer foo = (Integer) resultSet.getObject("foo");

更新:适用于 Java 1.7+

Integer foo = resultSet.getObject("foo", Integer.class);

Just check if the field is null or not using ResultSet#getObject().

Integer foo = resultSet.getObject("foo") != null ? resultSet.getInt("foo") : null;

Or, if you can guarantee that you use the right DB column type so that ResultSet#getObject() really returns an Integer (and thus not Long, Short or Byte), then you can also just typecast it.

Integer foo = (Integer) resultSet.getObject("foo");

UPDATE: For Java 1.7+

Integer foo = resultSet.getObject("foo", Integer.class);
酒浓于脸红 2024-11-12 07:17:59

您可以在检索值后检查 wasNull

来自文档

报告最后读取的列是否具有 SQL NULL 值。
请注意,您必须首先对列调用其中一个 getter 方法来尝试读取其值,然后调用方法 wasNull 来查看读取的值是否为 SQL NULL。

You can check for wasNull after retrieving the value.

From the documentation:

Reports whether the last column read had a value of SQL NULL.
Note that you must first call one of the getter methods on a column to try to read its value and then call the method wasNull to see if the value read was SQL NULL.

孤星 2024-11-12 07:17:59

还有一个更简单的方法,直接输入cast即可。如果为空,则将为空。如果有效,则它成为自动装箱对象。

(Integer) resultSet.getObject("foo")

There is a simpler way., Just type cast it. If null, it will be null. If valid, then it becomes the autoboxed object.

(Integer) resultSet.getObject("foo")
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文