2012-03-08 2 views
1

Java 연결 개체가 입력으로 제공 될 때 데이터베이스 ER 다이어그램을 생성 할 수있는 Java API/java 플러그인이 있습니까?데이터베이스 ER 생성 다이어그램

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

이 API는 오라클, MySQL은, PostgreSQL을 함께 작동해야합니까?

나는 schemacrawler (http://schemacrawler.sourceforge.net/) 도구를 사용했지만 didint는이를 수행 할 수있는 API를 얻었다.

이와 같은 API가없는 경우 내 API를 작성하는 방법을 알려주세요. 스키마 이름이 입력으로 제공되면 데이터베이스 또는 특정 스키마의 모든 스키마에 대한 ER 다이어그램을 생성하려고합니다.

이 작업을 수행하는 방법에 대해 알려면 도움이 될 것입니다. 나는 결국 알아 낸 같은 일을하려고 할 때 내가했던 것처럼이 오래된 질문이다 JGraph

+0

schemacrawler는 유망 해 보입니다. 이 예제를 사용하여 임시 폴더에 이미지를 쓰고 나중에 Java 응용 프로그램에서 열어보십시오. –

+0

나는 스키마 크롤러에서 주어진 예제를 이해하지 못했는가? ER 다이어그램을 생성하기 위해 스키마 크롤러에서 어떤 API가 사용되는지를 의미한다. 그 샘플 코드를 여기에 붙여 넣을 수 있습니까? 단지이 API를 schemacrawler final에 사용하지 못했습니다. Database database = SchemaCrawlerUtility.getDatabase (connection, options); (최종 스키마 스키마 : database.getSchemas()) {}이 API를 사용하여 스키마, 테이블, 열 등을 크롤링 할 수 있음을 알고 있습니다. – Rajesh

답변

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 설치하고 경로가 작동하기에 할 수 있어야합니다.

2

하지만 전역 경우 다른 사람 비틀 거림에 : 나는 당신이 한 번 봐 걸릴 수 있습니다, 정확하게 질문을 이해하면

관련 문제