簡體   English   中英

將具有平列結構的結果集轉換為分層數據結構

[英]convert a result set with flat column structure into hierarchical data structure

我在java.sql.ResultSet中有一個數據庫查詢的結果,該查詢需要轉換為分層數據結構。 看起來像這樣:

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
}

有人對最佳方法有建議/代碼段嗎?

有幾種方法,如何執行取決於解決方案的堅固性。

一種方法是只編寫幾個在數據庫中具有屬性的對象。 然后,您可以獲取結果集並對其進行迭代,每次鍵字段(例如,“名稱”)更改時都創建一個新對象,並將其添加到該對象的列表中。 然后,您將適當地設置屬性。 那是“快速而骯臟的”解決方案。

一種更健壯的方法是使用類似Hibernate的方法進行映射。

如果您決定這樣做,我也建議您重做表,以便它們准確反映您的對象結構。 如果您只想快速解決方案,則可能不需要。 但是,如果您正在尋找針對商業或企業軟件的可靠解決方案,則可能是個好主意。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM