spring community day 2010
TRANSCRIPT
![Page 1: Spring community day 2010](https://reader033.vdocuments.co/reader033/viewer/2022052909/559885ec1a28ab53198b45b9/html5/thumbnails/1.jpg)
Spring Community Day 2010
Spring DAO
Jonathan Lara@jonathanlarav
![Page 2: Spring community day 2010](https://reader033.vdocuments.co/reader033/viewer/2022052909/559885ec1a28ab53198b45b9/html5/thumbnails/2.jpg)
Agenda - I
Spring DAO
Generalidades
Jerarquía de excepciones
Clases de soporte
Spring JDBC
Motivaciones
Clases de soporte de Spring JDBC
Controlando las conecciones
Usando SimpleJdbc
![Page 3: Spring community day 2010](https://reader033.vdocuments.co/reader033/viewer/2022052909/559885ec1a28ab53198b45b9/html5/thumbnails/3.jpg)
Agenda - II
Spring Transaction Management
Atributos
Tipos:
Definición programática
Definición declarativa - XML
Definición declarativa - Anotaciones
![Page 4: Spring community day 2010](https://reader033.vdocuments.co/reader033/viewer/2022052909/559885ec1a28ab53198b45b9/html5/thumbnails/4.jpg)
Spring DAO
![Page 5: Spring community day 2010](https://reader033.vdocuments.co/reader033/viewer/2022052909/559885ec1a28ab53198b45b9/html5/thumbnails/5.jpg)
Nos da un camino sencillo para poder interactuar
con tecnologías como JDBC, Hibernate, JDO.
Abstrae el manejo de excepciones específicas
por cada tenología.
Nos permite cambiar entre tecnologías de
persistencia facilmente.
Motivaciones
![Page 6: Spring community day 2010](https://reader033.vdocuments.co/reader033/viewer/2022052909/559885ec1a28ab53198b45b9/html5/thumbnails/6.jpg)
Jerarquía de excepciones
![Page 7: Spring community day 2010](https://reader033.vdocuments.co/reader033/viewer/2022052909/559885ec1a28ab53198b45b9/html5/thumbnails/7.jpg)
JdbcDaoSupport
Req. DataSource. (+) JdbcTemplate
HibernateDaoSupport
Req. SessionFactory. (+) HibernateTemplate
JdoDaoSupport
Req. PersistenceManagerFactory. (+) JdoTemplate
JpaDaoSupport
Req. EntityManagerFactory. (+) JpaTemplate
Clases de soporte
![Page 8: Spring community day 2010](https://reader033.vdocuments.co/reader033/viewer/2022052909/559885ec1a28ab53198b45b9/html5/thumbnails/8.jpg)
Spring JDBC
![Page 9: Spring community day 2010](https://reader033.vdocuments.co/reader033/viewer/2022052909/559885ec1a28ab53198b45b9/html5/thumbnails/9.jpg)
Pasos para trabajar con JDBC
Definir los parámetros de conección.
Abrir la conección.
Definir la sentencia
Preparar y ejecutar la sentencia
Iterar los resultados
Procesar cada resultado
Procesar las excepciones
Capturar las excepciones
Cerrar la conección
Motivaciones
![Page 10: Spring community day 2010](https://reader033.vdocuments.co/reader033/viewer/2022052909/559885ec1a28ab53198b45b9/html5/thumbnails/10.jpg)
JdbcTemplate
NamedParameterJdbcTemplate
SimpleJdbcTemplate
SimpleJdbcInsert y SimpleJdbcCall
SqlUpdate, StoredProcedure, etc…
Clases de soporte
![Page 11: Spring community day 2010](https://reader033.vdocuments.co/reader033/viewer/2022052909/559885ec1a28ab53198b45b9/html5/thumbnails/11.jpg)
JdbcTemplate
Implementación clásica de Spring JDBC.
Es el nivel más bajo para JDBC
Las demás implementaciones utilizan internamente
JdbcTemplate.
JDK 1.4 (+)
Clases de soporte
![Page 12: Spring community day 2010](https://reader033.vdocuments.co/reader033/viewer/2022052909/559885ec1a28ab53198b45b9/html5/thumbnails/12.jpg)
NamedParameterJdbcTemplate
Envuelve JdbcTemplate y permite usar nombres para
los parámetros en vez del comodín ( ? )
JDK 1.4 (+)
Clases de soporte
![Page 13: Spring community day 2010](https://reader033.vdocuments.co/reader033/viewer/2022052909/559885ec1a28ab53198b45b9/html5/thumbnails/13.jpg)
SimpleJdbcTemplate
Combina las funcionalidades de las dos anteriores.
Utiliza funcionalidades de Java 5 como varargs,
autoboxing, generics.
JDK 1.5 (+)
Clases de soporte
![Page 14: Spring community day 2010](https://reader033.vdocuments.co/reader033/viewer/2022052909/559885ec1a28ab53198b45b9/html5/thumbnails/14.jpg)
SimpleJdbcInsert y SimpleJdbcCall
Recibe un Map de parámetros y el nombre de una
tabla o store procedure y realiza una comparación
entre los nombres de las columnas.
Internamente utiliza SimpleJdbcTemplate.
JDK 1.5 (+)
Clases de soporte
![Page 15: Spring community day 2010](https://reader033.vdocuments.co/reader033/viewer/2022052909/559885ec1a28ab53198b45b9/html5/thumbnails/15.jpg)
Clases de soporte de Spring para el acceso a las
conecciones.
DataSourceUtils.
SmartDataSource.
AbstractDataSource
SingleConnecionDataSource
DriverManagerDataSource
Controlando las conecciones
![Page 16: Spring community day 2010](https://reader033.vdocuments.co/reader033/viewer/2022052909/559885ec1a28ab53198b45b9/html5/thumbnails/16.jpg)
Some code…
Usando SimpleJdbc
![Page 17: Spring community day 2010](https://reader033.vdocuments.co/reader033/viewer/2022052909/559885ec1a28ab53198b45b9/html5/thumbnails/17.jpg)
Insertando datos y obteniendo un autogenerado…
Usando SimpleJdbc
![Page 18: Spring community day 2010](https://reader033.vdocuments.co/reader033/viewer/2022052909/559885ec1a28ab53198b45b9/html5/thumbnails/18.jpg)
Especificando columnas en base a una clase…
Usando SimpleJdbc
![Page 19: Spring community day 2010](https://reader033.vdocuments.co/reader033/viewer/2022052909/559885ec1a28ab53198b45b9/html5/thumbnails/19.jpg)
Ejecutando SP’s con SimpleJdbcCall…
Usando SimpleJdbc
![Page 20: Spring community day 2010](https://reader033.vdocuments.co/reader033/viewer/2022052909/559885ec1a28ab53198b45b9/html5/thumbnails/20.jpg)
Obteniendo un cursor…
Usando SimpleJdbc
![Page 21: Spring community day 2010](https://reader033.vdocuments.co/reader033/viewer/2022052909/559885ec1a28ab53198b45b9/html5/thumbnails/21.jpg)
Spring Transaction Management
![Page 22: Spring community day 2010](https://reader033.vdocuments.co/reader033/viewer/2022052909/559885ec1a28ab53198b45b9/html5/thumbnails/22.jpg)
Name
Timeout
Read-only
Propagation
Isolation
Atributos
![Page 23: Spring community day 2010](https://reader033.vdocuments.co/reader033/viewer/2022052909/559885ec1a28ab53198b45b9/html5/thumbnails/23.jpg)
Tipos:
REQUIRED
REQUIRES_NEW
MANDATORY
NESTED
NEVER
NOT_SUPPORTED
SUPPORTS
Propagation
![Page 24: Spring community day 2010](https://reader033.vdocuments.co/reader033/viewer/2022052909/559885ec1a28ab53198b45b9/html5/thumbnails/24.jpg)
REQUIRED
![Page 25: Spring community day 2010](https://reader033.vdocuments.co/reader033/viewer/2022052909/559885ec1a28ab53198b45b9/html5/thumbnails/25.jpg)
REQUIRES_NEW
![Page 26: Spring community day 2010](https://reader033.vdocuments.co/reader033/viewer/2022052909/559885ec1a28ab53198b45b9/html5/thumbnails/26.jpg)
Tipos:
DEFAULT
READ_UNCOMMITED
READ_COMMITED
REPEATABLE_READ
SERIALIZABLE
Isolation
![Page 27: Spring community day 2010](https://reader033.vdocuments.co/reader033/viewer/2022052909/559885ec1a28ab53198b45b9/html5/thumbnails/27.jpg)
Configuración:
Referenciar el bean TransactionTemplate
Definición programática
![Page 28: Spring community day 2010](https://reader033.vdocuments.co/reader033/viewer/2022052909/559885ec1a28ab53198b45b9/html5/thumbnails/28.jpg)
Usaremos AOP:
Definición declarativa - XML
![Page 29: Spring community day 2010](https://reader033.vdocuments.co/reader033/viewer/2022052909/559885ec1a28ab53198b45b9/html5/thumbnails/29.jpg)
Configurando el manejo de anotaciones…
Definición declarativa - Anotaciones
![Page 30: Spring community day 2010](https://reader033.vdocuments.co/reader033/viewer/2022052909/559885ec1a28ab53198b45b9/html5/thumbnails/30.jpg)
Spring JDBC provee una forma sencilla y eficiente
para poder acceder de diferentes formas a recursos
de la BBDD.
Conclusiones
Spring Transaction Management provee atributos
constantes para configurar de manera programática
o declarativa el manejo de transacciónes en nuestra
aplicación.
![Page 31: Spring community day 2010](https://reader033.vdocuments.co/reader033/viewer/2022052909/559885ec1a28ab53198b45b9/html5/thumbnails/31.jpg)
SpringHispano.org
SpringFramework.org
http://delicious.com/jonathanlarav
Tag de Spring y Spring Tx
Referencias
![Page 32: Spring community day 2010](https://reader033.vdocuments.co/reader033/viewer/2022052909/559885ec1a28ab53198b45b9/html5/thumbnails/32.jpg)
Gracias!!!