Как проверить, соответствует ли существующая база данных формату программы

Во-первых, я новичок в программировании Java DB, поэтому, возможно, мой подход неверен. Пожалуйста, имейте это в виду. Теперь вопрос:

Моя программа позволяет пользователю открыть существующую базу данных Java Derby. Когда он открыт, я хочу проверить, содержит ли база данных правильные таблицы и каждая таблица имеет правильные столбцы - не только имена, но и тип. Пока я пытаюсь создать каждую таблицу, и если она выдает исключение, я знаю, что таблица существует. Теперь мне нужно проверить типы столбцов. Как лучше всего это сделать? Проверка жесткого кода для каждого типа столбца, как указано здесь в блоке catch?


person Dula    schedule 04.08.2016    source источник


Ответы (1)


Если вы хотите выяснить, какие таблицы присутствуют в базе данных, какие столбцы есть в каждой таблице и т. д., есть (по крайней мере) два простых подхода:

  1. Выполнять SQL-запросы к системным каталогам Derby, например

    выберите имя_схемы || '.' || t.tablename
    из sys.systables t, sys.sysschemas s
    где t.schemaid = s.schemaid и t.tabletype = 'T' упорядочиваются по s.schemaname, t.tablename;

  2. Используйте API, предоставляемый java.sql.DatabaseMetaData, и его методы, такие как getSchemas(), getTables() и getColumns().

person Bryan Pendleton    schedule 05.08.2016