我正在尝试使用普通的JDBC创建一段代码,该类获取特定表中特定列的外键的目标表和列的名称,但是通过核心接口我似乎无法找到直接的方法来做到这一点。
有没有办法直接通过JDBC获取有关外键的信息,或者我是否必须求助于特定数据库的元数据查询,在本例中为HSQLDB。
如果我必须使用数据库特定的元数据查询,哪个HSQLDB内部元数据表保存该信息?
答案 0 :(得分:5)
最好的选择是Connection#getMetaData()
,其返回DatabaseMetaData
所有方法,以获取有关所有tables,columns,primary keys,foreign keys的信息等等。但是,您是否完全支持JDBC实现(读取:JDBC驱动程序make / version)。
答案 1 :(得分:1)
JDBC确实支持这一点。查看DatabaseMetaData.getCrossReference课程。 DatabaseMetdata上的其他方法支持查询模式,目录,表,列等。请记住,某些数据库需要URL上的额外参数才能打开元数据(即Oracle)以优化调用。不知道HQLSB是否需要这个。