سؤال

لا أحد يعرف من مكتبة جافا الذي يوفر التجريد مفيدا لتحليل والتلاعب التعسفي المخطط قاعدة بيانات علائقية؟ أنا أفكر في شيء يمكن أن تفعل أشياء مثل

LibraryClass dbLib = ...;
DbSchema schema = dbLib.getSchema("my_schema");
List<DbTable> tables = schema.getTables();

و

DbTable myTable  = ...
for(DbColumn col : myTable.getColumns()){
    ... = col.getType();
}

وأو حتى التعامل مع الجداول مثل

myTable.addColumn(
    new DbColumn("my_new_column", Type.UNSIGNED_INTEGER);
);

DbColumn myColumn = ...
myTable.removeColumn(myColumn);

وومعظم أدوات النمذجة قاعدة البيانات لديها مثل فكرة مجردة داخليا، ولكن هناك واحد في جاوة التي يمكنني استخدامها، أو سوف لا بد لي من القوائم الخاصة بي؟

هل كانت مفيدة؟

المحلول

DdlUtils لديه ما كنت تبحث عنه. يمكنك قراءة المخططات / الكتابة إلى / من XML (في شكل عزم الدوران) أو قاعدة بيانات حية، أو حتى تحديد مخطط قاعدة البيانات في جاوة النقي. والأفضل من ذلك، وقراءة الدوكو على الخط، انها جيدة للغاية.

نصائح أخرى

وJDBC نفسها لديها مثل هذا التجريد. انظروا java.sql.DatabaseMetaData. ومع ذلك، وهذا هو جزء اختياري من المعيار وذلك يعتمد على السائق JDBC كنت تستخدم الطقس ويتم تنفيذ ذلك أم لا.

وعندما كنت في MetaMatrix، قمنا ببناء شيء من هذا القبيل باستخدام EMF (الكسوف إطار النمذجة) حيث أنشأنا التمثيلي الفوقية نموذج في UML، ثم تولد من التعليمات البرمجية. والشيء الجميل في metamodeling هو أنه إذا كنت تفعل ذلك بشكل جيد، يمكنك التعامل الأشياء عبر metamodels، شريطة أن جعلت خيارات جيدة ضد التلوي التلوي نموذج.

وكان لدينا أيضا المستورد من شأنه أن استيراد بيانات التعريف من API JDBC وإنشاء كائنات نموذج معادلة مناسبة (قاعدة بيانات، الجدول، العمود، المفاتيح، الخ).

وربما يكون هذا الرمز مفتوحة المصدر في يوم من الأيام أنها حصلت المشتراة من قبل جبوس لكنني لا أعتقد أنه حتى الان.

scroll top