Spring community day 2010

Post on 05-Jul-2015

1.428 views 2 download

Transcript of Spring community day 2010

Spring Community Day 2010

Spring DAO

Jonathan Lara@jonathanlarav

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

Agenda - II

Spring Transaction Management

Atributos

Tipos:

Definición programática

Definición declarativa - XML

Definición declarativa - Anotaciones

Spring DAO

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

Jerarquía de excepciones

JdbcDaoSupport

Req. DataSource. (+) JdbcTemplate

HibernateDaoSupport

Req. SessionFactory. (+) HibernateTemplate

JdoDaoSupport

Req. PersistenceManagerFactory. (+) JdoTemplate

JpaDaoSupport

Req. EntityManagerFactory. (+) JpaTemplate

Clases de soporte

Spring JDBC

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

JdbcTemplate

NamedParameterJdbcTemplate

SimpleJdbcTemplate

SimpleJdbcInsert y SimpleJdbcCall

SqlUpdate, StoredProcedure, etc…

Clases de soporte

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

NamedParameterJdbcTemplate

Envuelve JdbcTemplate y permite usar nombres para

los parámetros en vez del comodín ( ? )

JDK 1.4 (+)

Clases de soporte

SimpleJdbcTemplate

Combina las funcionalidades de las dos anteriores.

Utiliza funcionalidades de Java 5 como varargs,

autoboxing, generics.

JDK 1.5 (+)

Clases de soporte

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

Clases de soporte de Spring para el acceso a las

conecciones.

DataSourceUtils.

SmartDataSource.

AbstractDataSource

SingleConnecionDataSource

DriverManagerDataSource

Controlando las conecciones

Some code…

Usando SimpleJdbc

Insertando datos y obteniendo un autogenerado…

Usando SimpleJdbc

Especificando columnas en base a una clase…

Usando SimpleJdbc

Ejecutando SP’s con SimpleJdbcCall…

Usando SimpleJdbc

Obteniendo un cursor…

Usando SimpleJdbc

Spring Transaction Management

Name

Timeout

Read-only

Propagation

Isolation

Atributos

Tipos:

REQUIRED

REQUIRES_NEW

MANDATORY

NESTED

NEVER

NOT_SUPPORTED

SUPPORTS

Propagation

REQUIRED

REQUIRES_NEW

Tipos:

DEFAULT

READ_UNCOMMITED

READ_COMMITED

REPEATABLE_READ

SERIALIZABLE

Isolation

Configuración:

Referenciar el bean TransactionTemplate

Definición programática

Usaremos AOP:

Definición declarativa - XML

Configurando el manejo de anotaciones…

Definición declarativa - Anotaciones

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.

SpringHispano.org

SpringFramework.org

http://delicious.com/jonathanlarav

Tag de Spring y Spring Tx

Referencias

Gracias!!!