Spring & JDBC

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

1
2
3
4
5
6
7
8
9
10
11
12
13
14
PreparedStatement ps = connection.prepareStatement("Select name, email from t_users where status = ?");
ps.setInt(1, new Integer(1));

ResultSet rs = ps.executeQuery();
List<user> users = new ArrayList<user>();

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:

1
2
return (List<user>) jdbcTemplate.query("Select name, email from t_users where status = ?",
     new Object[] { new Integer(1) }, new UserRowMapper());

Exemplo de RowMapper:

1
2
3
4
5
6
7
8
9
10
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


Nenhum comentário

Deixe Seu Comentário