2012-03-08 5 views
1

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

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

API-интерфейс должен работать с Oracle, MySQL, PostgreSQL?

Я прошел через инструмент schemacrawler (http://schemacrawler.sourceforge.net/), но didint получил API, который мог бы это сделать.

Если API не существует, то дайте мне знать, как написать собственный API? Я хочу генерировать диаграмму ER для всей схемы в базе данных или любой конкретной схеме, если имя схемы предоставляется в качестве входных данных.

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

+0

schemacrawler выглядит многообещающим. Подумайте, используя пример, напишите изображение в папку temp и откройте его с помощью java-приложения. –

+0

Я не понял пример, приведенный в искателе схемы? Я имею в виду, какой API используется в искателе схемы для генерации диаграммы ER .. и как? можете ли вы вставить этот пример кода здесь? Только я undesrtood этот API в окончательной схеме анализатора База данных базы данных = SchemaCrawlerUtility.getDatabase (соединение, опций); для (окончательная схема схемы: database.getSchemas()) {} Я знаю, что этот API можно использовать для сканирования по схеме, таблице, столбцу и т. Д. – Rajesh

ответ

2

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

2

Это старый вопрос, но в случае, если кто-либо другой натыкается это, как я сделал, когда пытается сделать то же самое, что в конце концов разобрался как сгенерировать ERD с помощью API Java 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 быть установлен и на пути к работе.

Смежные вопросы