如何找到两个表之间的关系?

时间:2011-06-15 21:07:39

标签: java sql

在SQL中,我们需要编写很多,多级连接。但问题是,我们现在不知道如何连接这些表?

例如,使用外键Table_A引用Table_BTable_B引用Table_C。如何获得所有这些关系路线图?我们是否有免费的开源工具来获取任何两个表格之间的关系(如果适用)?

我更喜欢Java代码。

3 个答案:

答案 0 :(得分:1)

您可以使用SQL Power Architect通过逆向工程数据库来获取数据模型。 Community Edition能够做到这一点。

答案 1 :(得分:1)

我或许你的意思是如何从元数据中获取外键。基本上,外键定义了重新绑定。

以下是如何从jdbc元数据获取外键的示例: http://www.java2s.com/Code/Java/Database-SQL-JDBC/GetForeignKeys.htm

此外,您可以使用hibernate工具将数据库反向工程到域实体。在哪里可以清楚地看到关系。

答案 2 :(得分:0)

java.sql.DatabaseMetaData接口公开有关数据库的元信息。具体来说,此方法公开了外键关系:

public ResultSet getCrossReference(String primaryCatalog,
                                   String primarySchema,
                                   String primaryTable,
                                   String foreignCatalog,
                                   String foreignSchema,
                                   String foreignTable)
                            throws SQLException

Java doc:

检索给定外键表中引用给定主键表的主键列的外键列的描述(描述一个表如何导入另一个键的键)。这应该通常返回一个外键/主键对,因为大多数表只从表中导入一次外键。