1

当提供 java 连接对象作为输入时,是否有任何 java API/java 插件可以生成数据库 ER 图。

前任:InputSream generateDatabaseERDiagram(java connection object)// where inputsream will point to generated ER diagram image

API 应该与 oracle、mysql、postgresql 一起使用吗?

我正在使用 schemacrawler(http://schemacrawler.sourceforge.net/) 工具,但没有任何 API 可以做到这一点。

如果没有这样的 API,那么让我知道如何编写自己的 API?如果模式名称作为输入提供,我想为数据库中的所有模式或任何特定模式生成 ER 图。

如果您对如何完成此任务有所了解,将会很有帮助。

4

2 回答 2

2

如果我正确理解你的问题,你可以看看:JGraph

于 2012-03-08T09:07:28.803 回答
2

这是一个老问题,但如果其他人像我在尝试做同样的事情时一样偶然发现它,我最终想出了如何使用 Schemacrawler 的 java API 生成 ERD。

            //Get your java connection however
            Connection conn = DriverManager.getConnection("DATABASE URL");
            SchemaCrawlerOptions options = new SchemaCrawlerOptions();
            // Set what details are required in the schema - this affects the
            // time taken to crawl the schema
            options.setSchemaInfoLevel(SchemaInfoLevelBuilder.standard());
            // you can exclude/include objects using the options object e.g.
            //options.setTableInclusionRule(new RegularExpressionExclusionRule(".*qrtz.*||.*databasechangelog.*"));

            GraphExecutable ge = new GraphExecutable();

            ge.setSchemaCrawlerOptions(options);

            String outputFormatValue = GraphOutputFormat.png.getFormat();

            OutputOptions outputOptions = new OutputOptions(outputFormatValue, new File("database.png").toPath());

            ge.setOutputOptions(outputOptions);

            ge.execute(conn);

这仍然需要安装graphviz并在工作路径上。

于 2015-10-22T09:32:23.223 回答