Spring community day 2010

32
Spring Community Day 2010 Spring DAO Jonathan Lara @jonathanlarav

Transcript of Spring community day 2010

Page 1: Spring community day 2010

Spring Community Day 2010

Spring DAO

Jonathan Lara@jonathanlarav

Page 2: Spring community day 2010

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

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

Spring DAO

Page 5: Spring community day 2010

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

Jerarquía de excepciones

Page 7: Spring community day 2010

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

Spring JDBC

Page 9: Spring community day 2010

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

JdbcTemplate

NamedParameterJdbcTemplate

SimpleJdbcTemplate

SimpleJdbcInsert y SimpleJdbcCall

SqlUpdate, StoredProcedure, etc…

Clases de soporte

Page 11: Spring community day 2010

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

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

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

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

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

Some code…

Usando SimpleJdbc

Page 17: Spring community day 2010

Insertando datos y obteniendo un autogenerado…

Usando SimpleJdbc

Page 18: Spring community day 2010

Especificando columnas en base a una clase…

Usando SimpleJdbc

Page 19: Spring community day 2010

Ejecutando SP’s con SimpleJdbcCall…

Usando SimpleJdbc

Page 20: Spring community day 2010

Obteniendo un cursor…

Usando SimpleJdbc

Page 21: Spring community day 2010

Spring Transaction Management

Page 22: Spring community day 2010

Name

Timeout

Read-only

Propagation

Isolation

Atributos

Page 23: Spring community day 2010

Tipos:

REQUIRED

REQUIRES_NEW

MANDATORY

NESTED

NEVER

NOT_SUPPORTED

SUPPORTS

Propagation

Page 24: Spring community day 2010

REQUIRED

Page 25: Spring community day 2010

REQUIRES_NEW

Page 26: Spring community day 2010

Tipos:

DEFAULT

READ_UNCOMMITED

READ_COMMITED

REPEATABLE_READ

SERIALIZABLE

Isolation

Page 27: Spring community day 2010

Configuración:

Referenciar el bean TransactionTemplate

Definición programática

Page 28: Spring community day 2010

Usaremos AOP:

Definición declarativa - XML

Page 29: Spring community day 2010

Configurando el manejo de anotaciones…

Definición declarativa - Anotaciones

Page 30: Spring community day 2010

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

SpringHispano.org

SpringFramework.org

http://delicious.com/jonathanlarav

Tag de Spring y Spring Tx

Referencias

Page 32: Spring community day 2010

Gracias!!!