JdbcTemplate支持哪些类型的返回值?

JdbcTemplate支持以下几种类型的返回值:
1、 基本类型:

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

2、 字符串:

String name = jdbcTemplate.queryForObject("SELECT name FROM user WHERE id = ?", String.class, 1);

3、 日期:

Date birthDate = jdbcTemplate.queryForObject("SELECT birth_date FROM user WHERE id = ?", Date.class, 1);

4、 对象:

User user = jdbcTemplate.queryForObject("SELECT * FROM user WHERE id = ?", 
    new Object[] {1}, new BeanPropertyRowMapper<>(User.class));
  • 使用BeanPropertyRowMapper将数据映射到User对象。
    5、 对象列表:
List<User> users = jdbcTemplate.query("SELECT * FROM user", 
    new Object[] {}, new BeanPropertyRowMapper<>(User.class)); 
  • 将所有查询结果映射到User对象列表。
    6、 Map:
Map<String, Object> user = jdbcTemplate.queryForMap("SELECT * FROM user WHERE id = ?", 1);
  • 将字段名映射为key,字段值映射为value。
    7、 自定义结果集处理器:
List<String> names = jdbcTemplate.query("SELECT name FROM user", 
    new ResultSetExtractor<List<String>>() {
        public List<String> extractData(ResultSet rs) throws SQLException {
            List<String> list = new ArrayList<String>();
            while (rs.next()) {
                list.add(rs.getString("name"));
            }
            return list;
        }
    }); 
  • 实现ResultSetExtractor接口自定义处理查询结果。