2

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

有没有办法直接通过 JDBC 获取有关外键的此类信息,或者我是否必须求助于特定数据库的元数据查询,在这种情况下是 HSQLDB。

如果我必须使用特定于数据库的元数据查询,哪些 HSQLDB 内部元数据表包含该信息?

4

2 回答 2

5

您最好的选择是Connection#getMetaData()返回DatabaseMetaData所有方法以获取有关所有主键外键等的信息。但是,您依赖于 JDBC 实现(阅读:JDBC 驱动程序制造/版本)是否完全支持。

于 2010-02-24T22:48:39.703 回答
1

JDBC 确实支持这一点。查看DatabaseMetaData.getCrossReference类。DatabaseMetdata 上的其他方法支持查询模式、目录、表、列等。请记住,某些数据库需要您的 URL 上的额外参数来打开元数据(即 Oracle)以优化调用。不知道 HQLSB 是否需要这个。

于 2010-02-25T01:52:28.350 回答