[英]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.