Лучший способ получить XML из набора результатов JDBC

Я ищу лучший подход к получению XML-документа из набора результатов JDBC. Структура XML не очень важна, но она должна быть достаточно быстрой.

Для ясности я хотел бы получить данные из набора результатов и только метаданные, достаточные для идентификации данных (по сути, имен полей). В настоящее время я работаю с MySQL, DB2, SQL Server, но решение должно быть независимым от базы данных (для XML в SQL Server это невозможно).

4 голоса | спросил Jim Blizard 8 Jpm1000000pmThu, 08 Jan 2009 23:22:47 +030009 2009, 23:22:47

3 ответа


0

Вы хотите преобразовать таблицу ResultSet в XML? Я не знаю ни одного стороннего инструмента, но не так уж и сложно свернуть один из ваших собственных.

У вас есть два варианта иметь постоянный формат:

<ResultSet>
  <MetaData>
    <Column name="...." type="..."/>
    ....
  <MetaData>
  <Data>
    <Row><Cell value="valueConvertedToString"/><Cell null="true"/></Row>
    ....
  </Data>
</ResultSet>

Или специфичные для метаданных:

<ResultSet>
  <MetaData>
    <Column name="id" type="int"/>
    <Column name="color" type="string"/>
    ....
  <MetaData>
  <Data>
    <Row><id value="45"/><color null="true"/></Row>
    ....
  </Data>
</ResultSet>

Во втором случае вы не можете определить схему статически.

ответил Miserable Variable 8 Jpm1000000pmThu, 08 Jan 2009 23:50:37 +030009 2009, 23:50:37
0

Используя WebRowSet, можно один раз преобразовать весь ResultSet в XML. XML, сгенерированный WebRowSet, очень прост и понятен, я не уверен насчет скорости, так как он также зависит от реализации драйвера.

Вот хорошая статья о WebRowSet с использованием Я думаю, Oracle , который удовлетворит ваши потребности.

ответил Tousif 26 Maypm11 2011, 12:53:31
0

Я согласен с первым респондентом в том, что вы можете получить очень хорошее представление для человека и компьютера для чтения XML, просто написав немного кода.

Я применил этот же подход еще в 2002 году, чтобы создать промежуточный бизнес-объект для инструмента создания отчетов XML /PDF /HTML /XHTML /XLS. Программирование бизнес-объекта в XML-конвертере заняло всего несколько часов. Я воспользовался тем, что объекты не были самоссылочными. В противном случае мне пришлось бы добавлять ссылочные элементы, а не просто выравнивать значения.

Существует также WebRowSet , если вы используете Java 5 или более позднюю версию. Я не могу сказать, что его вывод выглядит супер привлекательным для непосредственного потребления XSLT, но он все еще пригоден для использования. Гораздо более приемлемый, чем типичный вывод JAXB.

Тем не менее, теперь есть более крутой подход, если вы используете Java 6 или новее.

Если вы используете JDBC 4, вы можете указать набор данных с параметром универсального типа, идентифицирующим класс, и JDBC заполнит поля этого класса данными. Это первая половина хитрости. См. аннотации JDBC для получения дополнительной информации

Вторая половина хитрости заключается в использовании XStream для преобразования их коллекции в XML. XStream обычно дает хороший результат с первого раза.

Вы можете сделать сгенерированный XML по-настоящему чистым, читабельным, лаконичным (то есть «плотным») с помощью предоставить XStream несколько псевдонимов для использования. И если это не сработает, есть много других способов настроить вывод .

ответил JohnnySoftware 11 Jam1000000amSun, 11 Jan 2009 05:18:54 +030009 2009, 05:18:54

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132