gpt4 book ai didi

java - Spring - jdbcTemplate 无法获取 Pair 对象

转载 作者:行者123 更新时间:2023-12-02 09:08:11 25 4
gpt4 key购买 nike

我可以将 Pair 作为 jdbcTemplate 的输出吗?我尝试了以下方法(适用于单独的整数)

Pair<Integer, Integer> result = jdbcTemplate.queryForObject(GET_PAIR, new Object[]{}, Pair.class);

但它返回异常

org.springframework.jdbc.IncorrectResultSetColumnCountException: Incorrect column count: expected 1, actual 2
at org.springframework.jdbc.core.SingleColumnRowMapper.mapRow(SingleColumnRowMapper.java:92)
at org.springframework.jdbc.core.RowMapperResultSetExtractor.extractData(RowMapperResultSetExtractor.java:93)
at org.springframework.jdbc.core.RowMapperResultSetExtractor.extractData(RowMapperResultSetExtractor.java:60)
at org.springframework.jdbc.core.JdbcTemplate$1.doInPreparedStatement(JdbcTemplate.java:703)
at org.springframework.jdbc.core.JdbcTemplate.execute(JdbcTemplate.java:639)
at org.springframework.jdbc.core.JdbcTemplate.query(JdbcTemplate.java:690)
at org.springframework.jdbc.core.JdbcTemplate.query(JdbcTemplate.java:722)
at org.springframework.jdbc.core.JdbcTemplate.query(JdbcTemplate.java:732)
at org.springframework.jdbc.core.JdbcTemplate.queryForObject(JdbcTemplate.java:800)

尝试使用org.apache.commons.lang3.tuple.Pair

最佳答案

queryForObject 需要一个结果并且仅需要一个结果。因此,当您收到 EmptyResultDataAccessException 时,这意味着对 Object 的查询没有找到任何内容。

但是,即使你得到了结果,我仍然认为它不会起作用。更好的方法是使用 RowMapper。

jdbcTemplate.query(GET_PAIR, (rs, i) -> new Pair(rs.getInt(1), rs.getInt(2)))

这将允许您将元素映射到一对(这将返回一个列表,每一行一个)。

关于java - Spring - jdbcTemplate 无法获取 Pair 对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59629781/

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