如何使用 JdbcTemplate 以数组形式获取结果?

问题描述 投票:0回答:2
String sql = "SELECT name, age, gender from persons";
List<Map<String, Object>> results = jdbcTemplate.queryForList(sql, params);

问题:如何获得数组形式的结果

List<String[]>
?由于我从每行仅选择 3 个值,因此我知道
result[0]
是姓名,或
results[2]
是性别。

所以我更喜欢 jdbcTemplate 不返回键值映射,而只是返回没有数据库列名称的普通数组。

java sql spring jdbc spring-jdbc
2个回答
2
投票
List<Object[]> result = jdbcTemplate.queryForList(sql).stream().map(row -> row.values().toArray()).collect(Collectors.toList());

或者如果您知道这些列都是字符串值:

List<String[]> result = jdbcTemplate.queryForList(sql).stream().map(row -> row.values().toArray(new String[row.size()])).collect(Collectors.toList());

使用 Java 16+ 和 JdbcClient:

jdbcClient.sql(sql).query.listOfRows().stream().map(row -> row.values().toArray()).toList();

1
投票
List<String[]> result = jdbcTemplate.queryForList(query, params, String[].class)
List<String> result = jdbcTemplate.queryForList(query, params, String.class)
© www.soinside.com 2019 - 2024. All rights reserved.