DatabaseMetaData.getTables()返回多少列?

时间:2010-08-05 22:26:53

标签: java database oracle jdbc

我正在使用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(当然得到合适的驱动程序),我可能会得到一些列吗?

2 个答案:

答案 0 :(得分:3)

您正在使用的Oracle 10g的JDBC驱动程序正在履行旧规范。这是它符合的JavaDoc。当你做的不仅仅是绝对的基础知识时,你必须知道JDBC驱动程序的JDBC版本才能有效地使用它们。

答案 1 :(得分:1)

JDBC是一个规范。某些功能必须符合规范;其他是可选的。

我不知道完整的规范,但这必须是Oracle选择不返回接口中表达的所有值的一个功能。像MySQL这样的其他供应商可能会选择这样做。

你必须尝试看看。

缺少的列是否对您的应用操作至关重要?切换数据库供应商似乎是一个微不足道的理由。