使用Dom4j映射复杂的结果集

时间:2010-03-01 11:57:37

标签: java sql sql-server xml dom4j

我正在尝试从复杂的结果集创建XML文档,即具有多个连接的结果集,因此竞争有很多问题,而且问题有很多答案。

因此该文件最终会看起来像:

<competitions>
  <competition id="12">
    <question id="3">
      <answer id="34">
        The answer
      </answer>
      <answer id="35">
        The answer
      </answer>
      <answer id="36">
        The answer
      </answer>
    </question>
...

很像SQL Server中的“for XML”命令,但我无法使用数据库进行处理,因此需要使用Java。任何人都可以指出我正确的方向任何良​​好的资源甚至开源库,这样做/类似的事情,所以我可以让它做我想要的吗?感谢。

3 个答案:

答案 0 :(得分:0)

我不明白你的问题是什么“在Java中”意味着什么?您是否需要解析此XML(使用Dom4J),是否要从此生成Java对象(使用JAXB,Xstream或任何其他XML绑定库),还是需要编写此XML?

答案 1 :(得分:0)

一个相当容易的事情是将结果集首先转换为竞争对象,然后将对象转换为xml(使用xstream或某些此类框架)。

您是否可以将结果集转换为竞赛对象? (或者你也需要帮助吗?)

class Competitions {
   List<Competition> getCompetitions();
}

class Competition {
   Integer getId();
   Question getQuestion();
}

class Question {
   Integer getId();
   Answer getAnswer();
}

class Answer {
   String getText();
}

答案 2 :(得分:0)

正如Calm Storm建议的那样,我将结果集转换为Object树,并在Abstract Class中创建了一个自定义toXml方法,该方法遍历每个对象中的方法并从中创建XML元素和属性。

我简直不敢相信没有一个更简单的开源解决方案,这将自动完成所有这些!也许我只是懒惰:)。