0

我想知道Java是否以某种方式支持数据的“转换和融合”。“铸造和熔化”是指以 R 包 reshape(或 reshape2)的方式“重塑”数据。

所以我有一个 SQL 查询,它返回以下内容(在 ResultSet 中):

---------------------
|Id | Key    | Value|
---------------------
|1  | Name   | John |
|1  | Gender | Male | 
|1  | Country| U.S  |
|2  | Name   | Tom  |
|2  | Gender | Male |
|2  | Country| Cuba |
---------------------

我想重塑这个数据,这样我就可以得到这个:

------------------------
|Id|Name|Gender|Country|
------------------------
|1 |John|Male  |U.S    |
|2 |Tom |Male  |Cuba   |
------------------------

Java 程序员如何实现这种转变?

4

3 回答 3

1

这通常可以通过使用适配器设计模式来完成,该模式负责封装数据并为字段提供不同的接口。

否则,您可以通过查看起始对象并将字段转换为您喜欢的格式来创建新对象。

于 2012-07-11T17:19:07.357 回答
0

不是直接的。R 更专注于数据,而 Java 更多地是一种通用语言,缺乏一些特定的功能。您可以自己编程;或使用“ETL”(提取、转换、加载)工具,例如 Kettle http://kettle.pentaho.com/

于 2012-07-11T17:24:24.730 回答
0

让 SQL 为您完成。假设您的表名为“foo”:

Select name.id, name.value, gender.value, country.value 
-- 3 views of 'foo', one for names, 2nd for gender, 3rd for country
from foo as name, foo as gender, foo as country 
-- restricting each view to its purpose
where name.key='Name' and gender.key='Gender' and country.key='Country'
-- joining the 3 views together
and name.id=gender.id and name.id=country.id
于 2012-07-11T17:49:17.660 回答