gpt4 book ai didi

java - 如何从 ResultSet 构建此 Java 集合

转载 作者:行者123 更新时间:2023-12-02 07:55:12 27 4
gpt4 key购买 nike

我有来自 ResultSet 的数据,其中包含三个字段:DataType、Data、DataValue。我想构建一个 Java Collection,然后构建 JSON 编码。

这是我尝试打印时的输出:

System.out.println(resultSet.getString("DATATYPE") + " --> " + resultSet.getString("DATA") + " --> " + resultSet.getString("DATAVALUE"));

输出:

Address --> Test --> JHGJHGJKG
Address --> City--> Some city
Address --> State --> Some state
Address --> Downtown --> Some downtown
Address --> Telephone --> 547455654
Address --> Street --> Some street
Customer Information --> Downtown --> some other downtown
Customer Information --> Job --> Programmer
Customer Information --> Identification card --> ID32443
Customer Information --> ZIP Code --> 74584
Customer Information --> Kind of person --> Regular
Customer Information --> Birthday --> 10 01 1980
Customer Information --> Telephone --> 99832498
Other --> Last visit --> 10 01 1980

我尝试使用 Guava Google Collections,如下所示:

Map<String, String> data = new HashMap<String,String>();
HashMultimap<String, Map> multiMap = HashMultimap.<String, Map> create();
...
//iterating the resultSet
..

data.put(resultSet.getString("DATA"), resultSet.getString("DATAVALUE"));
multiMap.put(resultSet.getString("DATATYPE"), data);
..
// resultSet ends

生成的集合/多重映射将是:

{
[
Address = {
Test = somevalue,
City = SomeCity,
...
},
Customer Information={
Job = programer,
Identificationcard = ID34234,
...
},
Other{
Lastvisit = 10-02-1990
}
]
}

我已经尝试过了,但没有成功。

ResultSet 中的所有结果都是动态的,动态的类型、数据和值。我无法使用定义的类,例如地址数据,因为无法显示输入数据。

最佳答案

您可以拥有像这样的通用域对象:

Dataobject {

dataType;
data;
dataValue;

Set<Dataobject>descendents;

}

这将为您提供无限的链接深度。

当您迭代结果集时,您可以决定是否要在相同级别或增加深度创建它们。

完成所有这些之后,使用 XStream() 将其编码为 xml 字符串。

关于java - 如何从 ResultSet 构建此 Java 集合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9741842/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com