Существует ли библиотека моделирования базы данных для Java?

StackOverflow https://stackoverflow.com/questions/290163

  •  08-07-2019
  •  | 
  •  

Вопрос

Кто-нибудь знает о библиотеке Java, которая предоставляет полезную абстракцию для анализа произвольных схем реляционных баз данных и манипулирования ими?Я думаю о чем-то, что могло бы делать такие вещи, как

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);

Большинство инструментов моделирования баз данных будут иметь такую абстракцию внутри, но есть ли она в Java, которую я могу использовать, или мне придется создать свою собственную?

Это было полезно?

Решение

ДдлУтилы есть то, что вы ищете.Вы можете читать / записывать схемы в / из XML (в формате Torque) или живой базы данных или даже определять схему базы данных на чистом Java.А еще лучше, почитайте документальный фильм онлайн, он довольно хорош.

Другие советы

Сам JDBC обладает такой абстракцией.Посмотрите на java.sql.DatabaseMetaData.Однако это необязательная часть стандарта, и это зависит от используемого вами драйвера JDBC, реализован он или нет.

Я не пользовался им много лет, но раньше у Hibernate был инструменты для манипулирования моделями данных во время сборки.В Hibernate также есть диалекты concept, которые были бы полезны, если вы ориентируетесь более чем на одного поставщика баз данных.

Когда я был в MetaMatrix, мы создали такую штуку, используя EMF (Eclipse Modeling Framework), где мы создали репрезентативную метамодель в UML, а затем сгенерировали ее из кода.Хорошая особенность метамоделирования заключается в том, что если вы делаете это хорошо, вы можете взаимодействовать с различными метамоделями, при условии, что вы сделали правильный выбор в отношении мета-мета-модели.

У нас также был импортер, который импортировал метаданные из JDBC API и создавал соответствующие эквивалентные объекты модели (база данных, таблица, столбец, ключи и т.д.).

Этот код может когда-нибудь стать открытым исходным кодом с тех пор, как его купила JBoss, но я не думаю, что это пока.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top