преобразовать результирующий набор с плоской структурой столбцов в иерархическую структуру данных - PullRequest
1 голос
/ 28 марта 2012

У меня есть результат запроса базы данных в 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
}

У кого-нибудь есть предложения / фрагменты кода о том, как лучше всего это сделать?

1 Ответ

0 голосов
/ 28 марта 2012

Есть несколько способов, и то, как вы это сделаете, зависит от того, насколько надежным должно быть ваше решение.

Можно было бы просто написать пару объектов, которые имели атрибуты в базе данных. Затем вы можете получить набор результатов и выполнить итерацию по нему, создавая новый объект каждый раз, когда изменяется ключевое поле (например, «имя»), и добавляя его в список этого объекта. Тогда вы установите атрибуты соответствующим образом. Это «быстрое и грязное» решение.

Несколько более надежный способ - использовать что-то вроде Hibernate для отображения.

Если вы решите это сделать, я бы также предложил переделать ваши таблицы, чтобы они точно отражали структуру вашего объекта. Это может не понадобиться, если вы просто хотите быстрое решение. Но если вы ищете надежное решение для коммерческого или корпоративного программного обеспечения, это, вероятно, хорошая идея.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...