|
|
|
BD>Java>XML
|
|||
|---|---|---|---|
|
#18+
Есть данные в базе. Надо подключиться и загенерить XML файл. берем hibernate>сохраняем данные в вспомогательный объект>записываем в XML (правильно ?) Что мне не понятно: никогда не работал с XML. Как записывать в XML? Может даже в стандартной библиотеке есть методы для работы с XML. GoogleИспользование DOM, JDOM API и им подобных технологий для записи в файл напрямую из структур данных XML в памяти. Использование TrAX (Transformation API for XML) и тождественного преобразования для сохранения XML-данных. Использование высокоуровнего API, такого как JAXB. Что посоветуете? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.11.2013, 14:59:41 |
|
||
|
BD>Java>XML
|
|||
|---|---|---|---|
|
#18+
Для задач класса ETL (Extract-Transform-Load) никакой Хибернейт не нужен. Выбросите вообще его и забудтье. Это ненужное пятое колесо. А в качестве комментария на ТЗ Надо подключиться и загенерить XML файл. Нужно уточнить какого вида должен быть XML. Куда класть fields? В атрибуты тегов? В valueOf ? Или вообще в секции CDATA? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.11.2013, 15:19:13 |
|
||
|
BD>Java>XML
|
|||
|---|---|---|---|
|
#18+
авторНужно уточнить какого вида должен быть XML. Куда класть fields? В атрибуты тегов? В valueOf ? Или вообще в секции CDATA? Вы могли ответить одной строчкой. Вместо этого вы спросили еще 3 вопроса по XML, с которым я раньше не имел дела (см. выше) Молодец! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.11.2013, 15:32:22 |
|
||
|
BD>Java>XML
|
|||
|---|---|---|---|
|
#18+
Вы приятный собеседник. Это я сразу понял. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.11.2013, 15:43:55 |
|
||
|
BD>Java>XML
|
|||
|---|---|---|---|
|
#18+
Я вам не собеседник. Мне нужна помощь в выборе технологий. Если не с кем поговорить идите в флудилку. (Чекнул ваш профиль 50% сообщений в разделе "Просто треп". Что и требовалось доказать) Был задан вопрос обобщенный, а не о конкретных полях и типах. Вот и надо отвечать размазано и обобщенно. Критиковать может каждый, а вот аргументированный критики не часто услышишь. (критика hibernate. предложение: null предложенных XML парсеров: null) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.11.2013, 15:56:12 |
|
||
|
BD>Java>XML
|
|||
|---|---|---|---|
|
#18+
eldarkaa, какая именно СУБД используется? Например, в MS SQL SERVER достаточно приписать к запросу FOR XML, и результат будет возвращён в виде xml. Всё! Во многих других БД тоже есть похожие возможности. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.11.2013, 16:27:11 |
|
||
|
BD>Java>XML
|
|||
|---|---|---|---|
|
#18+
=) База данных любая. Нужно с помощью Java(jdbc, (я выбрал повыше hibernate)) подключиться к БД. Далее считать данные в объект. Далее записать состояние объекта в XML. Пока ждал ответа с форума определился так: hibernate,jaxb. Готов выслушать критику =) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.11.2013, 16:30:59 |
|
||
|
BD>Java>XML
|
|||
|---|---|---|---|
|
#18+
eldarkaahibernate Готов выслушать критику Hibernate - тормозной монстр. Если нужно решить именно следующую задачу: eldarkaaЕсть данные в базе. Надо подключиться и загенерить XML файл. то хибер нужен как зайцу презерватив. eldarkaaБаза данных любая. Тогда ответ: решение любое. Я повторю ещё раз: самое простое решение - генерировать xml в самой СУБД. Делается это добавлением пары ключевых слов или вызовом функции. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.11.2013, 17:12:00 |
|
||
|
BD>Java>XML
|
|||
|---|---|---|---|
|
#18+
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. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.11.2013, 19:21:02 |
|
||
|
BD>Java>XML
|
|||
|---|---|---|---|
|
#18+
petalvikeldarkaa, какая именно СУБД используется? Например, в MS SQL SERVER достаточно приписать к запросу FOR XML, и результат будет возвращён в виде xml. Всё! Во многих других БД тоже есть похожие возможности.Там все не так просто, как вы описываете. Из коробки SELECT FOR XML будет работать только при простейших структурах. В противном случае вам необходимо использовать EXPLICIT MODE и иметь определенную структуру запроса, что не всегда возможно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.11.2013, 19:25:27 |
|
||
|
BD>Java>XML
|
|||
|---|---|---|---|
|
#18+
cdtyjvТам все не так просто, как вы описываете. Из коробки SELECT FOR XML будет работать только при простейших структурах. В противном случае вам необходимо использовать EXPLICIT MODE и иметь определенную структуру запроса, что не всегда возможно. Premature optimization?.. ;) Вот пусть топикстартер опишет, какая там структура данных, тогда можно будет и другое решение предложить. cdtyjv1) Наиболее удобный и православный способ работы с XML - через value object's. Читаем ещё раз первое сообщение топикстартера: > Есть данные в базе. Надо подключиться и загенерить XML файл. Зачем здесь лишние объекты? Просто берём из БД готовый xml и сохраняем. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.11.2013, 20:29:02 |
|
||
|
|

start [/forum/topic.php?fid=59&msg=38459410&tid=2128236]: |
0ms |
get settings: |
11ms |
get forum list: |
21ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
479ms |
get topic data: |
14ms |
get forum data: |
3ms |
get page messages: |
67ms |
get tp. blocked users: |
2ms |
| others: | 251ms |
| total: | 856ms |

| 0 / 0 |
