用于可视化数据库表关系的 Java 库
有谁知道有一个 Java 库可以帮助创建 GUI 组件来可视化 SQL 数据库中表之间的关系,类似于 Access 中的关系窗格或 SQL Server Enterprise Manager 中的图表功能。
我能够发现的最接近的是 Prefuse 库,但是我需要提取数据库结构并手动构建图表 - 有没有更简单的方法来做到这一点?
干杯。
Does anyone know of a Java library that would assist in creating a GUI component to visualize the relationships between tables in an SQL database, similar to the Relationships pane in Access, or the Diagrams function in SQL Server Enterprise Manager.
The closest I have been able to discover is the Prefuse library, however I would need to extract the database structure and build the graph manually - is there a simpler way to do this?
Cheers.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
我可能会使用视觉库。我也喜欢 Prefuse,但如果您是 Swing 开发人员,Visual Library 的 api 更像 Swing。另一种选择是 GraphViz,有些人喜欢它。您仍然需要自己提取数据库结构,尽管使用 jdbc。
I would probably use Visual Library. I like Prefuse as well, but Visual Library's api is more Swing like if you are a Swing developer. Another option is GraphViz which some people like. You would still have to extract the database structure yourself though this is fairly straight forward using jdbc.
yFiles 是一个用于 Java / .NET / Ajax / Flex / Android 的商业图形和可视化库,已使用在 DbVisualizer (JDBC) SQL 客户端(免费版和商业版)中具有完全相同的用途。从 yFiles(以及 DBVisualizer 中基于 yFiles 的窗口)导出的 GraphML 文件可以在(免费) yEd 图形编辑器。
以编程方式通过 JDBC 元数据提取数据库结构可能看起来很简单,但根据经验,我可以说 JDBC 驱动程序/数据库平台之间存在相当大的差异。此外,根据数据库平台的不同,所需的详细信息和所使用的授权级别所产生的结果可能会有所不同。
(注意,除了 yEd 和 DBVisualizer 的免费版本的用户之外,我与这两种产品没有任何关系,并将它们包含在这个答案中,因为使用这些程序的组合可以很好地预览此类项目所需的库功能,并可作为其结果的比较检查)。
yFiles is a commercial graph and visualization library for Java / .NET / Ajax / Flex / Android that has been used for the exact same use in the DbVisualizer (JDBC) SQL client (free & commercial version). GraphML files exported from yFiles (and yFiles based windows in DBVisualizer) can be edited / (re)formatted in the (free) yEd Graph editor.
Extracting the database structure through the JDBC metadata programmatically might look straightforward, but from experience I can say that there's a fair bit of difference between JDBC drivers/database platforms. Also, depending on database platform, details needed and authorization levels used the results yielded might differ.
(N.B. I have no affiliation to either product other than being a user of the free editions of yEd and DBVisualizer, and include them in this answer because using the combination of these programs can give a good preview on the library features needed for such a project, and can be used as comparison check for its results).