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

时间:2010-02-24 21:15:28

标签: java jdbc hsqldb

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

有没有办法直接通过JDBC获取有关外键的信息,或者我是否必须求助于特定数据库的元数据查询,在本例中为HSQLDB。

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

2 个答案:

答案 0 :(得分:5)

最好的选择是Connection#getMetaData(),其返回DatabaseMetaData所有方法,以获取有关所有tablescolumnsprimary keysforeign keys的信息等等。但是,您是否完全支持JDBC实现(读取:JDBC驱动程序make / version)。

答案 1 :(得分:1)

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