O Spring Framework facilita o trabalho com JDBC pois usufrui de IoC para eliminar o desenvolvimento baixo-nível. Se você não utiliza frameworks ORM, esta API se torna altamente recomendável. Segue comparação entre JDBC puro e utilizando o JdbcTemplate do Spring:
Exemplo 1: Criando uma lista de objetos utilizando JDBC puro
PreparedStatement ps = connection.prepareStatement("Select name, email from t_users where status = ?");
ps.setInt(1, new Integer(1));
ResultSet rs = ps.executeQuery();
List
while (rs.next()) {
User user = new User();
user.setName(rs.getString("name"));
user.setEmail(rs.getString("email"));
users.add(user);
}
return users;
Além de ser obrigatório tratar open/close de conexões.
Exemplo 2: Criando uma lista de objetos utilizando Spring & JDBC
Devemos utilizar a classe JdbcTemplate, injetando o dataSource atual (new JdbcTemplate(dataSource)). Além disso, devemos fazer uma nova classe que implemente a interface RowMapper para criar o objeto. Em seguida podemos criar uma lista de objetos com apenas uma linha de código:
return (List
new Object[] { new Integer(1) }, new UserRowMapper());
Exemplo de RowMapper:
public class UserRowMapper implements RowMapper {
@Override
public Object mapRow(ResultSet rs, int numRow) throws SQLException {
User user = new User();
user.setName(rs.getString("name"));
user.setEmail(rs.getString("email"));
return user;
}
}
Referência completa: http://static.springframework.org/spring/docs/2.0.x/reference/jdbc.html