spring jdbc

12
Spring JDBC Relator: Alejandro González ([email protected])

Upload: jano-gonzalez

Post on 12-Jul-2015

372 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: Spring jdbc

Spring JDBC

Relator: Alejandro González ([email protected])

Page 2: Spring jdbc

Temario General

➔ JDBC➔ BeanFactory➔ JdbcTemplate➔ SimpleJdbcDaoSupport

Page 3: Spring jdbc

Recordemos JDBC

Page 4: Spring jdbc

JDBC

➔ API para conexión a bases de datos (Java DataBase Connection)

Page 5: Spring jdbc

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

Page 6: Spring jdbc

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

Page 7: Spring jdbc

Si lo recuerdo...¿Pero cómo Spring facilita

el uso de esta API?

Page 8: Spring jdbc

DRY al rescate

Page 9: Spring jdbc

JDBCTemplate

➔ Insertando datos...

String sql = "insert into tabla(columna) values(?)";

JdbcTemplate jdbcTemplate =new JdbcTemplate(dataSource);

jdbcTemplate.update(sql, new Object[] { valor });

Page 10: Spring jdbc

JDBCTemplate

➔ En Java 5

String sql = "insert into tabla(columna) values(?)";

JdbcTemplate jdbcTemplate =new JdbcTemplate(dataSource);

jdbcTemplate.update(sql, valor);

Page 11: Spring jdbc

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;

Page 12: Spring jdbc

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;