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
接口自定义处理查询结果。