سؤال

هل هناك أي مكون إضافي لـ 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 ليتم تثبيتها وعلى المسار للعمل.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top