【问题标题】:getExportedKeys() in JDBC returns empty set in mysqlJDBC 中的 getExportedKeys() 返回 mysql 中的空集
【发布时间】:2015-06-17 14:42:20
【问题描述】:

我正在使用getExportedKeys JDBC 方法。它在 Oracle 中运行良好,但在 MySQL 中它返回空集。我尝试使用useInformationSchema=true,但它仍然返回空集。
让我知道getTables,getExportedKeys,getImportedKeys 是否适用于 MySQL、sql、DB2、Postgres 数据库。

【问题讨论】:

    标签: mysql jdbc


    【解决方案1】:

    这取决于您使用的驱动程序和数据源。 一些 DataSorce 实现提供了启用禁用 DatabaseMetadata 以获得更好性能的选项。

    例如:请参阅以下链接中的信息 https://docs.oracle.com/cd/E21764_01/web.1111/e13753/db2.htm#JDBCD153

    --->>目录选项

    确定当应用程序调用 DatabaseMetaData 方法时,结果集中包含哪种类型的元数据信息。

    有效值:0 | 2 | 6,默认值为 2。

    如果为 0,则结​​果集不包含同义词。

    如果为 2,则结果集包含从以下 DatabaseMetaData 方法返回的同义词:getColumns()、getExportedKeys()、getFunctionColumns()、getFunctions()、getImportedKeys()、getIndexInfo()、getPrimaryKeys()、getProcedureColumns() , 和 getProcedures()。

    如果为 6,则向驱动程序提供提示,以使用 ResultSetMetaData 对象模拟 getColumns() 调用,而不是查询数据库目录以获取列信息。结果集包含同义词。使用仿真可以提高性能,因为由仿真制定的 SQL 语句没有使用 getColumns() 制定的 SQL 语句复杂。 getColumns() 的参数必须计算为单个表。如果不是,例如,由于通配符或空值,驱动程序将恢复为 getColumns() 调用的默认行为。

    【讨论】:

      猜你喜欢
      • 2011-10-03
      • 2016-08-31
      • 2014-03-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-05-16
      • 1970-01-01
      • 2021-04-12
      相关资源
      最近更新 更多