Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/379.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
JDBC ResultSet getString是否总是返回字符串表示形式?_Jdbc - Fatal编程技术网

JDBC ResultSet getString是否总是返回字符串表示形式?

JDBC ResultSet getString是否总是返回字符串表示形式?,jdbc,Jdbc,我正在格式化ResultSet以输出到CSV文件。因此,除了知道结果集是文本还是数字之外,我真的不关心结果集的Java类型 JDBC是否保证getString总是给出值的字符串表示,至少是单个值(我不需要关心java.sql.Types.ARRAY,java.sql.Types.java\u OBJECT和其他一些) e、 g.给定resultSetMetaData.getColumnType(i)是Types.FLOAT或Types.BIGDECIMAL。rs.GetString(i)是否总是

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

JDBC是否保证getString总是给出值的字符串表示,至少是单个值(我不需要关心
java.sql.Types.ARRAY
java.sql.Types.java\u OBJECT
和其他一些)

e、 g.给定
resultSetMetaData.getColumnType(i)
Types.FLOAT
Types.BIGDECIMAL
rs.GetString(i)
是否总是产生一些字符串


i、 e.当getXXX给我值时,getString是否会抛出SQLException或返回null?

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

至于转换,如果JDBC驱动程序允许您从非字符串类型转换,则由JDBC驱动程序决定。我怀疑很多人都会对此有意见

我建议您改为这样做:

Object item = resultSet.getObject(i);
String strValue = (item == null ? null : item.toString());
这应该更加健壮,因为
getObject()
将始终执行明智的操作。

是的,请检查以下内容:

JDBC允许很大的自由度,您可以使用哪些getXXX方法来检索不同的SQL类型。例如,getInt方法可用于检索任何数字或字符类型。它检索的数据将转换为int;也就是说,如果SQL类型是VARCHAR,JDBC将尝试从VARCHAR中解析一个整数。但是,建议使用getInt方法仅检索SQL整数类型,并且它不能用于SQL类型BINARY、VARBINARY、LONGVARBINARY、DATE、TIME或TIMESTAMP


但是要小心,不同的JDBC驱动程序可能会产生不同的结果。

这就是问题所在,当getXXX给我值时,getString是否会抛出SQLException或返回null?请更新链接指南:
注意,尽管建议使用getString方法检索SQL类型CHAR和VARCHAR,可以使用它检索任何基本SQL类型。使用getString获取所有值非常有用,但也有其局限性。例如,如果用于检索数值类型,则getString将数值转换为Java字符串对象,并且必须将该值转换回数值类型,然后才能将其作为数字进行操作。如果该值被视为字符串,则没有缺点。