java流代码将一张表行转列
时间: 2023-08-08 16:05:47 浏览: 75
好的,我可以帮您解答这个问题。您需要使用Java中的ResultSet和HashMap类来实现将一张表行转列的操作。
步骤如下:
1.查询数据表中的数据,得到ResultSet对象。
2.创建一个HashMap对象。
3.遍历ResultSet对象中的数据,将每一行数据分别放入HashMap对象中对应的“列名-值”键值对中。
4.将HashMap对象放入List对象中,依次表示每一列的数据。
5.最后,将List对象中的数据输出即可。
下面是示例代码,希望能帮到您:
```
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
public class TableTran {
public static List<Map<String, Object>> tranRsToList(ResultSet rs) throws Exception {
List<Map<String, Object>> list = new ArrayList<Map<String, Object>>();
ResultSetMetaData md = rs.getMetaData();
int columnCount = md.getColumnCount();
while (rs.next()) {
Map<String, Object> rowData = new HashMap<String, Object>();
for (int i = 1; i <= columnCount; i++) {
rowData.put(md.getColumnName(i), rs.getObject(i));
}
list.add(rowData);
}
return list;
}
public static void main(String[] args) throws Exception {
// 假设查询出来的表的数据如下:
// col1 col2 col3
// A B 1
// C D 2
// E F 3
ResultSet rs = null; // 模拟查询出来的ResultSet对象
List<Map<String, Object>> list = tranRsToList(rs);
int columnCount = rs.getMetaData().getColumnCount();
for (int i = 1; i <= columnCount; i++) {
System.out.println(rs.getMetaData().getColumnName(i) + ":");
for (Map<String, Object> map : list) {
System.out.print(map.get(rs.getMetaData().getColumnName(i)) + " ");
}
System.out.println();
}
}
}
```
希望以上代码能够解决您的问题。如果还有其他问题,请随时提出。
阅读全文