powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / BD>Java>XML
13 сообщений из 13, страница 1 из 1
BD>Java>XML
    #38459298
eldarkaa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть данные в базе. Надо подключиться и загенерить XML файл.
берем hibernate>сохраняем данные в вспомогательный объект>записываем в XML (правильно ?)

Что мне не понятно: никогда не работал с XML.
Как записывать в XML? Может даже в стандартной библиотеке есть методы для работы с XML.
GoogleИспользование DOM, JDOM API и им подобных технологий для записи в файл напрямую из структур данных XML в памяти.
Использование TrAX (Transformation API for XML) и тождественного преобразования для сохранения XML-данных.
Использование высокоуровнего API, такого как JAXB.
Что посоветуете?
...
Рейтинг: 0 / 0
BD>Java>XML
    #38459315
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Для задач класса ETL (Extract-Transform-Load) никакой Хибернейт не нужен. Выбросите вообще
его и забудтье. Это ненужное пятое колесо.

А в качестве комментария на ТЗ
Надо подключиться и загенерить XML файл.
Нужно уточнить какого вида должен быть XML. Куда класть fields? В атрибуты тегов?
В valueOf ? Или вообще в секции CDATA?
...
Рейтинг: 0 / 0
BD>Java>XML
    #38459330
eldarkaa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторНужно уточнить какого вида должен быть XML. Куда класть fields? В атрибуты тегов?
В valueOf ? Или вообще в секции CDATA?
Вы могли ответить одной строчкой. Вместо этого вы спросили еще 3 вопроса по XML, с которым я раньше не имел дела (см. выше)
Молодец!
...
Рейтинг: 0 / 0
BD>Java>XML
    #38459338
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вы приятный собеседник. Это я сразу понял.
...
Рейтинг: 0 / 0
BD>Java>XML
    #38459352
rema174
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
вот и поговорили)
...
Рейтинг: 0 / 0
BD>Java>XML
    #38459353
eldarkaa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я вам не собеседник. Мне нужна помощь в выборе технологий. Если не с кем поговорить идите в флудилку.
(Чекнул ваш профиль 50% сообщений в разделе "Просто треп". Что и требовалось доказать)

Был задан вопрос обобщенный, а не о конкретных полях и типах. Вот и надо отвечать размазано и обобщенно.
Критиковать может каждый, а вот аргументированный критики не часто услышишь.
(критика hibernate. предложение: null
предложенных XML парсеров: null)
...
Рейтинг: 0 / 0
BD>Java>XML
    #38459375
petalvik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
eldarkaa,

какая именно СУБД используется?
Например, в MS SQL SERVER достаточно приписать к запросу FOR XML, и результат будет возвращён в виде xml. Всё!
Во многих других БД тоже есть похожие возможности.
...
Рейтинг: 0 / 0
BD>Java>XML
    #38459379
eldarkaa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
=)
База данных любая. Нужно с помощью Java(jdbc, (я выбрал повыше hibernate)) подключиться к БД. Далее считать данные в объект.
Далее записать состояние объекта в XML.
Пока ждал ответа с форума определился так: hibernate,jaxb. Готов выслушать критику =)
...
Рейтинг: 0 / 0
BD>Java>XML
    #38459410
petalvik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
eldarkaahibernate
Готов выслушать критику
Hibernate - тормозной монстр.
Если нужно решить именно следующую задачу:
eldarkaaЕсть данные в базе. Надо подключиться и загенерить XML файл.
то хибер нужен как зайцу презерватив.


eldarkaaБаза данных любая.
Тогда ответ: решение любое.


Я повторю ещё раз: самое простое решение - генерировать xml в самой СУБД. Делается это добавлением пары ключевых слов или вызовом функции.
...
Рейтинг: 0 / 0
BD>Java>XML
    #38459498
cdtyjv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
eldarkaa ,
Коллега, забудьте все, что было написано выше. Даю вам нормальный развернутый ответ.
1) Наиболее удобный и православный способ работы с XML - через value object's. Это значит, что у вас есть некая модель объектов с геттерами и сеттерами. И у вас есть движок XML (тот же упомянутый вами JAXB). Далее вы работаете с ним примерно так (условно):
XML marshall(Model) - перегнали из объектов в XML;
Model unmarshall(XML) - перегнали из XML в объекты.

2) Хибернейт в эту парадигму ложиться очень хорошо. Все происходит один в один, как вы описали. Сначала вы считываете объекты из СУБД и с помощью Хибера автоматически превращаете в набор объектов, в модель. Далее вы эту модель скармливаете XML-движку, и сразу же получаете заветную XML-ку.

3) Иногда на ваше приложения могут накладываться жесткие ограничения по каким-то параметрам. Например, по памяти. Или по времени отклика. В этих случаях, как правило, требуется переключаться на ручную работу с СУБД и с XML в стриминговом стиле. То есть, вы с помощью обычного JDBC коннектитесь к базе, отправляете туда SQL. На выход вам приходит курсор (ResultSet). Далее вы вычитываете по одной строчке этого курсора, и записываете данные куда-нибудь в SAX или StAX. Это работает быстро, жрет очень мало памяти, но крайне неудобно, так как теперь вы вынуждены все делать вручную.

То есть, у вас есть два подхода: либо вы используете удобные Hibernate/myBatis/и т.д. в связке с XML-биндинговыми библиотеками (напр. JAXB/JibX/и т.д.), но жертвуете скоростью, либо же вы все делаете руками через JDBC/SAX/StAX, получая много геморройного кода, но высокую скорость.

В мире J2EE по умолчанию всегда используют первый подход, так как скорость работы редко является краеугольным камнем системы. И только если есть доказанная необходимость переключиться на более скоростное решение, тогда переходят на геморройный "ручной" режим.

Так что вы все делаете правильно.

А коллегам, которые рассказывают про "тормозутость" XML, я бы порекомендовал почитать про premature optimization.
...
Рейтинг: 0 / 0
BD>Java>XML
    #38459503
cdtyjv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
petalvikeldarkaa,
какая именно СУБД используется?
Например, в MS SQL SERVER достаточно приписать к запросу FOR XML, и результат будет возвращён в виде xml. Всё!
Во многих других БД тоже есть похожие возможности.Там все не так просто, как вы описываете. Из коробки SELECT FOR XML будет работать только при простейших структурах. В противном случае вам необходимо использовать EXPLICIT MODE и иметь определенную структуру запроса, что не всегда возможно.
...
Рейтинг: 0 / 0
BD>Java>XML
    #38459549
petalvik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
cdtyjvТам все не так просто, как вы описываете. Из коробки SELECT FOR XML будет работать только при простейших структурах. В противном случае вам необходимо использовать EXPLICIT MODE и иметь определенную структуру запроса, что не всегда возможно.
Premature optimization?.. ;)
Вот пусть топикстартер опишет, какая там структура данных, тогда можно будет и другое решение предложить.

cdtyjv1) Наиболее удобный и православный способ работы с XML - через value object's.
Читаем ещё раз первое сообщение топикстартера:
> Есть данные в базе. Надо подключиться и загенерить XML файл.
Зачем здесь лишние объекты? Просто берём из БД готовый xml и сохраняем.
...
Рейтинг: 0 / 0
BD>Java>XML
    #38459557
eldarkaa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
petalvik,
игнорируем дальше (в следующий раз еще читайте топик!)
cdtyjv,
спасибо за разъяснения добрый и адекватный человек!)
...
Рейтинг: 0 / 0
13 сообщений из 13, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / BD>Java>XML
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]