Гибкость функции импорта / экспорта данных с использованием XML-привязки - PullRequest
0 голосов
/ 02 февраля 2011

Я собираюсь разработать функцию импорта / экспорта базы данных в приложении Java EE.

Я планирую использовать решение для привязки XML для преобразования между объектом Java и файлом XML, который является файлом импорта / экспорта.

  • Функция импорта: разархивируйте файл XML в объект Java в представлении памяти, затем используйте JDBC для обновления базы данных.

  • Функция экспорта: инвертировать процесс импорта.восстановить базу данных для объекта Java и упорядочить объект в XML.

Я думаю, что он может работать нормально, но недостаточно гибок .Поскольку XSD XML предопределен, невозможно изменить схему XML и определение объекта Java во время выполнения.Скажи, что это динамическое связывание.Даже если я хочу, чтобы эта функция поддерживала другие форматы файлов (вы можете забыть об этом, если формат слишком далеко на этом этапе).

Что вы посоветуете по поводу этой функции?Спасибо!

Ответы [ 2 ]

2 голосов
/ 02 февраля 2011

Я не знаю, правильный ли это ответ, но если в любом случае это полезно: Я использовал Spring, Hibernate, JAXB, где вы можете аннотировать класс сущности вашей базы данных и его элемент аннотацией jaxb, и вам не нужно писать какие-либо файлы XML-схем. Весной вы можете использовать jaxb Marshaller.

Я думаю, что это возможно и в чистом jaxb, так что вы можете посмотреть аннотацию jaxb.

1 голос
/ 02 февраля 2011

Я думаю, что это может нормально работать, но это не так достаточно гибкий. Потому что XSD XML предопределен, невозможно изменить схему XML и объект Java определение во время выполнения

Если вы считаете, что он недостаточно гибок, используйте формат обмена данными, который освобождает вас от всех этих фиксированных определений схемы (я знаю, что даже JSON имеет спецификацию схемы, но вы понимаете, в чем дело). Допустимо ли использование JSON?

Я бы даже сказал, что если «импорт в базу данных» и «экспорт из базы данных» - единственное требование, вам даже не нужно создавать объекты Java для этого. Просто передайте строку JSON, которая содержит схему, которая затем будет обрабатываться процессором JSON, который напрямую взаимодействует с вашим уровнем DAO. Аналогично с данными, прочитанными из базы данных. Недостатком является то, что поддержка "date" в JSON в лучшем случае нечеткая.

Если подумать, это не обязательно должен быть JSON. Вы можете взглянуть на другие форматы сериализации данных, такие как Apache Avro. Но опять же, если XML является вашим требованием, которое нельзя изменить, вы можете обойти «ограничение гибкости» с помощью , а не , используя схему вообще.

В конце концов, XML похож на насилие. Если это не решит вашу проблему, значит, вы ее недостаточно используете. : -)

...