API Java requise pour générer un diagramme ER de base de données
-
09-12-2019 - |
Question
Existe-t-il un plugin Java API/Java qui peut générer un diagramme ER de base de données lorsqu'un objet de connexion Java est fourni en entrée.
Ex: InputSream generateDatabaseERDiagram(java connection object)// where inputsream will point to generated ER diagram image
L'API devrait fonctionner avec Oracle, MySQL, Postgresql ?
J'utilisais l'outil schemacrawler (http://schemacrawler.sourceforge.net/) mais je n'avais pas d'API capable de faire cela.
Si aucune API comme celle-ci n’existe, faites-moi savoir comment écrire ma propre API ?Je souhaite générer un diagramme ER pour tous les schémas d'une base de données ou pour tout schéma spécifique si le nom du schéma est fourni en entrée.
Il serait utile que vous expliquiez comment réaliser cette tâche.
La solution
Si je vous ai compris que vous avez interrogé correctement, vous pouvez regarder: jgraph
Autres conseils
Ceci est une ancienne question, mais au cas où quelqu'un d'autre qui l'a trébuché, comme j'essayais de faire la même chose que j'ai finalement compris comment générer l'ERD à l'aide de l'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);
Cela nécessite toujours graphviz à installer et sur le chemin de travail.