首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >JDBC ResultSet getString总是返回字符串表示吗?

JDBC ResultSet getString总是返回字符串表示吗?
EN

Stack Overflow用户
提问于 2010-01-15 21:36:40
回答 1查看 25.9K关注 0票数 19

我正在格式化一个ResultSet以输出到CSV文件。因此,我真的不关心结果集的Java类型,除了可能知道它是文本还是数字。

JDBC是否保证getString将始终给出值的字符串表示,至少对于单个值(我不需要关心java.sql.Types.ARRAYjava.sql.Types.JAVA_OBJECT和其他几个值)。

例如,给定的resultSetMetaData.getColumnType(i)Types.FLOATTypes.BIGDECIMALrs.GetString(i)总是会输出一些字符串吗?

也就是说,有没有这样的情况: getString会抛出SQLException或返回null,而getXXX会给我这个值?

EN

回答 1

Stack Overflow用户

发布于 2010-01-15 21:39:25

java.lang.String是最后一个类--它永远不能有一个子类。因此,任何返回String的方法要么返回java.lang.String类的实例,要么返回null,或者抛出异常。

至于转换,取决于JDBC驱动程序是否允许您从非字符串类型进行转换。我怀疑许多人会对此有疑问。

我建议你这样做:

代码语言:javascript
复制
Object item = resultSet.getObject(i);
String strValue = (item == null ? null : item.toString());

这应该更健壮,因为getObject()总是做明智的事情。

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2071845

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档