使用java或java流将数据库里的 A,1 A,2 A,3 B,4 B,5 C,6 行转列
时间: 2023-02-06 20:38:40 浏览: 75
使用 Java 或 Java 流将数据库中的行转换为列,需要先连接到数据库,然后执行查询语句,获取结果集。接下来,可以使用 Java 流的 `Collectors.groupingBy` 方法将结果集按照第一列(即分组键)分组。最后,可以使用 `Map.Entry.getValue()` 方法将分组后的列表转换为列表列表,然后使用 `List.stream()` 方法将每个列表转换为流,最后使用 `Collectors.joining` 方法将流中的每个元素用逗号连接起来。
具体实现如下:
```java
import java.sql.*;
import java.util.*;
import java.util.stream.*;
public class RowToColumn {
public static void main(String[] args) throws SQLException {
// 连接到数据库
String url = "jdbc:mysql://localhost:3306/test";
String user = "username";
String password = "password";
Connection conn = DriverManager.getConnection(url, user, password);
// 执行查询语句,获取结果集
String sql = "SELECT * FROM table";
Statement stmt = conn.createStatement();
ResultSet rs = stmt.executeQuery(sql);
// 使用 Java 流将结果集转换为列表
List<List<String>> rows = StreamSupport.stream(Spliterators.spliteratorUnknownSize(rs, Spliterator.ORDERED), false)
.map(RowToColumn::toList)
.collect(Collectors.toList());
// 使用 Collectors.groupingBy 方法将列表按照第一列(即分组键)分组
Map<String, List<List<String>>> groups = rows.stream()
.collect(Collectors.groupingBy(row -> row.get(0)));
// 使用 Map.Entry.getValue 方法将分组后的列表转换为