مطلوب Java API لإنشاء مخطط ER لقاعدة البيانات
-
09-12-2019 - |
سؤال
هل هناك أي مكون إضافي لـ Java API/Java يمكنه إنشاء مخطط ER لقاعدة البيانات عند توفير كائن اتصال Java كمدخل.
السابق: InputSream generateDatabaseERDiagram(java connection object)// where inputsream will point to generated ER diagram image
هل يجب أن تعمل واجهة برمجة التطبيقات (API) مع Oracle وmysql وpostgresql؟
كنت أستخدم أداة schemacrawler(http://schemacrawler.sourceforge.net/) ولكن لم أحصل على أي واجهة برمجة تطبيقات يمكنها القيام بذلك.
إذا لم تكن هناك واجهة برمجة تطبيقات مثل هذه، فأخبرني كيف يمكنني كتابة واجهة برمجة التطبيقات الخاصة بي؟أرغب في إنشاء مخطط ER لجميع المخططات في قاعدة البيانات أو أي مخطط محدد إذا تم توفير اسم المخطط كمدخل.
سيكون من المفيد أن تظهر بعض الضوء على كيفية تحقيق هذه المهمة.
المحلول
إذا فهمت سؤالك بشكل صحيح، يمكنك إلقاء نظرة على: JGraph
نصائح أخرى
هذا سؤال قديم ولكن في حالة تعثر أي شخص آخر فيه كما فعلت عندما حاولت القيام بنفس الشيء، فقد اكتشفت في النهاية كيفية إنشاء ERD باستخدام واجهة برمجة تطبيقات 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 ليتم تثبيتها وعلى المسار للعمل.