Требуется Java API для создания диаграммы ER базы данных

Есть ли какой-нибудь java API/ плагин java, который может генерировать диаграмму ER базы данных, когда в качестве входных данных предоставляется объект соединения java.

Пример: 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 для всей схемы в базе данных или для любой конкретной схемы, если имя схемы предоставляется в качестве входных данных.

Будет полезно, если вы покажете, как решить эту задачу.

2 ответа

Решение

Если я правильно понял ваш вопрос, вы можете взглянуть на: JGraph

Это старый вопрос, но в случае, если кто-то еще наткнется на него, как я, когда пытался сделать то же самое, я в конце концов понял, как сгенерировать ERD, используя Java-API Schemacrawler.

            //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 был установлен и на пути к работе.

Другие вопросы по тегам