#java #database #design-patterns #jdbc #orm
#java #База данных #шаблоны проектирования #jdbc #orm
Вопрос:
мне нужно написать компонент для чтения XML-файлов и обновления уже созданной таблицы базы данных. проблема заключается в изменении xml для получения новых данных, а затем изменяется соответствующая структура таблицы базы данных.
но мне нужно общее решение и один компонент, выполняющий его, и я не хочу кодировать для конкретного изменения структуры xml и базы данных
я не нахожу никаких ORM, JDBC технологий / шаблонов проектирования для достижения этой цели. есть предложения?
Спасибо,
Комментарии:
1. Существуют библиотеки для работы с XML и реляционными базами данных, но ни один компонент не подходит для всех компонентов, которые вы себе представляете. Реальный ответ — это инструмент ETL. Вы говорите так, как будто хотите, чтобы все волшебным образом работало. Этого никогда не происходит.
2. Может быть, вам стоит взглянуть на Hibernate и эффект его настройки hbm2dll= auto.
3. спасибо, инструменты etl снова необходимо закодировать для конкретной структуры базы данных.. но желание чего-то волшебного — источник настоящих изобретений: P
4. похоже, что hbm2dll автоматически создает таблицы, но в моем случае мне нужно уже создавать структуры базы данных, поскольку это требует некоторого тщательного моделирования
Ответ №1:
Использование гибернации… Это возможно (попробуйте)
В режиме гибернации при выполнении кода сначала выполняется поиск файла hibernate.properties (помните, что hibernate.properties должен быть помещен в папку src ).
Если он находит файл ‘hibernate.properties’, он считывает содержимое этого файла first.So , теперь вы пишете класс драйвера, URL, имя пользователя и пароль для подключения к одной базе данных (скажем, MySQL), а затем с помощью метода saveOrUpdate(); или с помощью других методов обновите базу данных
Для второй базы данных используйте файл конфигурации, укажите информацию DriverClass, URL, имя пользователя и пароль внутри hibernate.cfg.xml (или ваше собственное имя для файла конфигурации) и используйте cfg.configure(); метод для чтения файла конфигурации.
Дайте мне знать, если у вас возникнут какие-либо проблемы