jdbcTemplate.queryForObject()用法

93 阅读1分钟

queryForObject 是 Spring 的 JdbcTemplate 类的一个方法,它用于执行一个 SQL 查询,并将结果作为一个对象返回。这个方法通常用于查询单行单列的结果,例如一个聚合函数的结果,或者是一个标量值。

以下是一些使用 queryForObject 方法的示例:

  1. 查询单行单列的结果:

    String sql = "SELECT COUNT(*) FROM user";int count = jdbcTemplate.queryForObject(sql, Integer.class);

在这个例子中,我们查询了用户的数量,并将结果作为一个 Integer 对象返回。

  1. 查询返回一个自定义对象的结果:

    String sql = "SELECT id, name FROM user WHERE id = ?";User user = jdbcTemplate.queryForObject(sql, new Object[]{1}, new BeanPropertyRowMapper<>(User.class));

在这个例子中,我们查询了 ID 为 1 的用户,并将结果映射到 User 类的一个实例上。

  1. 查询返回一个 Map 的结果:

    String sql = "SELECT * FROM user WHERE id = ?";Map<String, Object> userMap = jdbcTemplate.queryForObject(sql, new Object[]{1}, new ColumnMapRowMapper());

在这个例子中,我们查询了 ID 为 1 的用户,并将结果存储在一个 Map 中,Map 的键是列名,值是对应的值。

注意:queryForObject 方法假定查询结果只会返回一个结果。如果查询结果返回多个结果,这个方法将抛出 IncorrectResultSizeDataAccessException 异常。如果没有找到结果,它将抛出 EmptyResultDataAccessException 异常。