无法从 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);
我只需要获取一个 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);