spring jdbc
TRANSCRIPT
Spring JDBC
Relator: Alejandro González ([email protected])
Temario General
➔ JDBC➔ BeanFactory➔ JdbcTemplate➔ SimpleJdbcDaoSupport
Recordemos JDBC
JDBC
➔ API para conexión a bases de datos (Java DataBase Connection)
JDBC
➔ Las abstracciones básicas son:➔ DataSource: Una base de datos➔ Connection: Una conexión a la base de datos➔ Statement: Una consulta SQL a ejecutar➔ ResultSet: El conjunto de resultados entregado por
la ejecución de la consulta
➔ Se deben tomar precauciones para no dejar recursos sin cerrar
JDBC
➔ Usar JDBC involucra siempre los mismos pasos:➔ Obtener una conexión al DataSource➔ Crear un PreparedStatement con la consulta➔ Ejecutar la consulta e iterar los resultados➔ Manejar una posible SQLException➔ Preocuparse de no dejar recursos abiertos
Si lo recuerdo...¿Pero cómo Spring facilita
el uso de esta API?
DRY al rescate
JDBCTemplate
➔ Insertando datos...
String sql = "insert into tabla(columna) values(?)";
JdbcTemplate jdbcTemplate =new JdbcTemplate(dataSource);
jdbcTemplate.update(sql, new Object[] { valor });
JDBCTemplate
➔ En Java 5
String sql = "insert into tabla(columna) values(?)";
JdbcTemplate jdbcTemplate =new JdbcTemplate(dataSource);
jdbcTemplate.update(sql, valor);
JDBCTemplate
➔ Consultando datos...
String sql = "select * from table where columna = ?";
JdbcTemplate jdbcTemplate =new JdbcTemplate(dataSource);
ElObjeto resultado = (ElObjeto) jdbcTemplate.queryForObject(sql, new Object[] { id }, new ElObjetoRowMapper());
return vehicle;
SimpleJdbcDaoSupport
➔ Si el DAO extiende SimpleJdbcDao Support, hay menos que escribir
String sql = "select * from table where columna = ?";
ElObjeto resultado = (ElObjeto) getJdbcTemplate().queryForObject(sql, new Object[] { id }, new ElObjetoRowMapper());
return vehicle;