jdbc - JDBC ResultSet getString 是否始终返回字符串表示形式?

标签 jdbc

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

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

例如给定的 resultSetMetaData.getColumnType(i)Types.FLOATTypes.BIGDECIMALrs.GetString(i) 总是会产生一些 String 吗?

即当 getXXX 给我值时,是否存在 getString 会抛出 SQLException 或返回 null 的情况?

最佳答案

是的,检查一下:http://java.sun.com/docs/books/tutorial/jdbc/basics/retrieving.html

JDBC allows a lot of latitude as far as which getXXX methods you can use to retrieve the different SQL types. For example, the method getInt can be used to retrieve any of the numeric or character types. The data it retrieves will be converted to an int; that is, if the SQL type is VARCHAR , JDBC will attempt to parse an integer out of the VARCHAR. The method getInt is recommended for retrieving only SQL INTEGER types, however, and it cannot be used for the SQL types BINARY, VARBINARY, LONGVARBINARY, DATE , TIME, or TIMESTAMP.

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

关于jdbc - JDBC ResultSet getString 是否始终返回字符串表示形式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2071845/

相关文章:

java - 使用 Oracle SQL Developer 调用存储过程

java - 重新连接数据库后如何复用JDBC中的Statement?

java - 如何使用多个数据源获得 3 个线程池?

JAVA Sqlite 西里尔字母显示为?

java - 在mysql更新查询的情况下,java在结果集中返回什么

java - 如何使用deleteRow()方法从多个表中删除行

java - context.xml的解释

java - 我可以在 INSERT Batch 之后使用 LAST_INSERT_ID() 进行 SELECT 而不用担心吗?

jdbc - Apache 四郎 : Use ldap for user authentication and database for roles/permissions?

jdbc - JOOQ 与 JDBC+测试