Java 用Dom4j映射复杂结果集
我试图从一个复杂的结果集创建一个XML文档,即一个包含多个连接的结果集,因此一个竞赛有一堆问题,一个问题有一堆答案 因此,该文档最终会显示如下内容:Java 用Dom4j映射复杂结果集,java,sql,sql-server,xml,dom4j,Java,Sql,Sql Server,Xml,Dom4j,我试图从一个复杂的结果集创建一个XML文档,即一个包含多个连接的结果集,因此一个竞赛有一堆问题,一个问题有一堆答案 因此,该文档最终会显示如下内容: <competitions> <competition id="12"> <question id="3"> <answer id="34"> The answer </answer> <answer id="35"&g
<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。有没有人能为我指出正确的方向,让我找到任何好的资源,甚至是做这/类似事情的开源库,这样我就可以让它做我想做的事情?谢谢。从你的问题中我不明白“在Java中”是什么意思?您是否需要解析此XML(使用Dom4J),是否要从中生成Java对象(使用JAXB、Xstream或任何其他XML绑定库),还是需要编写此XML?一件相当简单的事情是首先将结果集转换为对象,然后再将对象转换为XML(使用xstream或类似的框架) 您是否能够将结果集转换为竞赛对象?(或者您也需要这方面的帮助?)
班级竞赛{
列表getCompetitions();
}
班级竞赛{
整数getId();
问题获取问题();
}
课堂提问{
整数getId();
回答getAnswer();
}
课堂答案{
字符串getText();
}
正如Calm Storm所建议的,我将结果集转换为对象树,并在抽象类中创建了一个自定义的toXml方法,该方法遍历每个对象中的方法,并从中创建XML元素和属性
我简直不敢相信没有一个更简单的开源解决方案可以实现这一切!也许我只是懒惰:)“在Java中”意味着我不能使用数据库,我必须使用Java进行处理。我需要从返回的结果集创建XML,我知道如何手动创建文档和元素等。但是当涉及到嵌套元素时,我很困难,就像我给出的XML示例一样。嗨,要从结果集创建java对象,可以使用Hibernate(这是一个ORM解决方案)。Hibernate还可以选择XML导出。但对于连接的结果集来说,这有点棘手。
class Competitions {
List<Competition> getCompetitions();
}
class Competition {
Integer getId();
Question getQuestion();
}
class Question {
Integer getId();
Answer getAnswer();
}
class Answer {
String getText();
}