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