当java连接对象作为输入提供时,是否有任何java API / java插件可以生成数据库ER图。
例如: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图,如果模式名称是作为输入提供的。
如果您对如何完成此任务有所了解,将会很有帮助。
答案 0 :(得分:2)
如果我理解你的问题,你可以看一下:JGraph
答案 1 :(得分: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并且要在工作路径上。