繁体   English   中英

如何使用普通JDBC获得目标表的名称和外键列的列

[英]How do I get name of the target table and column of foreign key column with plain JDBC

我正在尝试使用纯JDBC编写一段代码,该代码既可以获取目标表的名称,又可以获取特定表中特定列的外键的列,但是通过核心接口,我似乎找不到直接的做到这一点的方法。

有没有一种方法可以直接通过JDBC获得有关外键的此类信息,还是我必须求助于特定数据库(在这种情况下为HSQLDB)的元数据查询。

如果必须使用特定于数据库的元数据查询,则哪个HSQLDB内部元数据表保存该信息?

最好的选择是Connection#getMetaData() ,它使用所有方法返回DatabaseMetaData以获得有关所有主键外键等的信息。 但是,是否完全支持JDBC实现(请阅读:JDBC驱动程序版本)。

JDBC确实对此提供支持。 签出DatabaseMetaData.getCrossReference类。 DatabaseMetdata上的其他方法支持查询架构,目录,表,列等。请记住,某些数据库需要URL上具有额外的参数才能打开元数据(即Oracle)以优化调用。 不知道HQLSB是否需要这样做。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM