无法从 NamedParameterJdbcTemplate 获取 Float 数据类型

Сannot get Float data type from NamedParameterJdbcTemplate

我只需要获取一个 Float 数据类型值。在PostgreSQL数据库中,该字段的类型为real。我将不胜感激)

`public Float getPlayerRatingValue(Integer idClub, Integer idPlayer) {
        MapSqlParameterSource parameters = new MapSqlParameterSource();
        parameters.addValue("idClub", idClub);
        parameters.addValue("idPlayer", idPlayer);
        parameters.addValue("zeroRating", ZERO_RATING);
        return namedParameterJdbcTemplate
                .queryForObject(
                        "SELECT rating_value " +
                                "FROM rating " +
                                "WHERE id_club = :idClub AND id_player = :idPlayer",
                        parameters,
                        new BeanPropertyRowMapper<>(Float.class)
                );`

NamedParameterJdbcTemplate 有一个特殊的 method 用于单个 row/column 查询。

所以你可以只传递一个Float.class作为第三个参数:

return namedParameterJdbcTemplate
        .queryForObject(
                "SELECT rating_value " +
                        "FROM rating " +
                        "WHERE id_club = :idClub AND id_player = :idPlayer",
                parameters,
                Float.class
        );

另一个简单的例子:

MapSqlParameterSource parameterSource = new MapSqlParameterSource();
Float f = jdbcTemplate.queryForObject("SELECT CAST(1 AS REAL)", parameterSource, Float.class);
System.out.println(f);