我正在使用DatabaseMetaData类来查看它是如何工作的。 java doc注释似乎表示一个thing,而代码则有所不同。我知道它是一个接口,因此供应商提供JDBC驱动程序才能正确实现这一点。但我想知道我是否遗漏了什么?
我正在使用Oracle 10g版本。基本上,注释意味着它将在结果集中返回以下10列:
TABLE_CAT
TABLE_SCHEM
TABLE_NAME
TABLE_TYPE
说明
TYPE_CAT
TYPE_SCHEM
TYPE_NAME
SELF_REFERENCING_COL_NAM
REF_GENERATION
实际上我只在结果集中得到5列:
TABLE_CAT
TABLE_SCHEM
TABLE_NAME
TABLE_TYPE
说明
那是什么给出的?我是否误读了javadocs,或者这与jdbc驱动程序相当。例如,如果我换了oracle for MySQL(当然得到合适的驱动程序),我可能会得到一些列吗?
答案 0 :(得分:3)
您正在使用的Oracle 10g的JDBC驱动程序正在履行旧规范。这是它符合的JavaDoc。当你做的不仅仅是绝对的基础知识时,你必须知道JDBC驱动程序的JDBC版本才能有效地使用它们。
答案 1 :(得分:1)
JDBC是一个规范。某些功能必须符合规范;其他是可选的。
我不知道完整的规范,但这必须是Oracle选择不返回接口中表达的所有值的一个功能。像MySQL这样的其他供应商可能会选择这样做。
你必须尝试看看。
缺少的列是否对您的应用操作至关重要?切换数据库供应商似乎是一个微不足道的理由。