Se requiere API de Java para generar un diagrama de ER de la base de datos
-
09-12-2019 - |
Pregunta
¿Hay algún complemento API / JAVA de Java que pueda generar un diagrama de base de datos cuando el objeto de conexión Java se proporciona como entrada.
EX: InputSream generateDatabaseERDiagram(java connection object)// where inputsream will point to generated ER diagram image
La API debería funcionar con Oracle, MySQL, PostgreSQL?
Estaba pasando por Schemacrawler (http://schemacrawler.sourceforge.net/) Herramienta, pero Diint obtuvo cualquier API que podría hacer esto.
Si no hay API como esta, házmelo saber cómo puede escribir mi propia API?Quiero generar un diagrama de ER para todo el esquema en una base de datos o en cualquier esquema específico si el nombre del esquema se proporciona como entrada.
Será útil si muestra algo de luz sobre cómo lograr esta tarea.
Solución
Si entendí la pregunta correctamente, puede echar un vistazo a: japhgraph
Otros consejos
Esta es una pregunta antigua, pero en caso de que alguien más se tropieza con ella, ya que lo hice cuando traté de hacer lo mismo, finalmente descubrí cómo generar el ERD usando la API Java de 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);
Esto todavía requiere graphviz que se instalará y en la ruta para trabajar.