将具有平列结构的结果集转换为分层数据结构

时间:2012-03-28 19:02:04

标签: java database data-structures

我在java.sql.ResultSet中有一个需要转换为分层数据结构的db查询结果。它看起来有点像:

name|version|pname|code|count
n1|1.1|p1|c1|3
n1|1.1|p1|c2|2
n1|1.1|p2|c1|1
n1|1.2|p1|c1|0
n2|1.0|p1|c1|5

我需要将其转换为分层数据结构:

N1
 + 1.1
   + p1
     + c1(3)
     + c2(2)
   + p2
     + c1(1)
 + 1.2
    + p1
      + c1(0)
N2
 + 1.0
   + p1
     + c1(5)

所以我的数据结构看起来像这样

Name {
  String name
  List<Version> versions
}

Version {
  String version
  List<PName> pnames
}

PName {
  String pName
  List<CodeCount> codeCounts
}

CodeCount {
  String code
  Integer count
}

任何人都有关于最佳方法的建议/代码片段吗?

1 个答案:

答案 0 :(得分:0)

有几种方法,你如何做到这取决于你的解决方案需要多强大。

一个是编写几个具有数据库属性的对象。然后,您可以获取结果集,并迭代它,每次更改关键字段(例如,“name”)时创建一个新对象,并将其添加到该对象的列表中。然后你要适当地设置属性。这就是“快速而肮脏”的解决方案。

稍微强一些的方法是使用Hibernate之类的东西进行映射。

如果您决定这样做,我还建议您重做表格,以便准确反映您的对象结构。如果您只想要快速解决方案,则可能不需要它。但是,如果您正在为商业或企业软件寻求强大的解决方案,那么这可能是一个好主意。