Spring JDBC

JDBC (Java Database Connectivity) es una API de Java que nos permite atacar a la base de datos directamente desde nuestro código. Spring cuenta con una clase llamada JDBCTemplate para el control de conexiones y transacciones. Es como el EntityManager pero para JDBC. Y al igual que en EntityManager, Spring construye automáticamente nuestros DataSources y el pool de conexiones.

Ejemplo de uso de jdbcTemplate.
Por defecto JdbcTemplate acepta los parámetros "?" pero siempre es mejor utilizar nombres de parámetros para no depender de un orden si en el futuro añadimos o borramos parámetros.
jdbcTemplate también ofrece el método "update" para ejecutar queries que nos permiten modificar la base de datos: INSERT, UPDATE o DELETE.
Y la clase SimpleJdbcInsert nos permite insertar nuevas filas sin escribir queries.

Transacciones en JDBC

Muchas operaciones en DAOs incluyen la combinación de múltiples queries para un sólo request, por lo que la gestión de transacciones es necesaria. JdbcTemplate proporciona conexiones Spring-managed, en las que podemos usar la anotación @Transactional para agrupar un conjunto de métodos al igual que hacemos con Hibernate.

JPA vs. JDBC

JPA
  • Cómodo
  • Las relaciones entre tablas definidas mediante Java
  • Se genera SQL
JDBC
  • Puede ser más rápido
  • La relación entre tablas se define en base de datos
  • Se escribe SQL
Una buena estrategia es comenzar con JPA y establecer una clara separación entre la capa de datos y el resto de partes de la aplicación. Y si nos encontramos con problemas de rendimiento, aislar las partes problemáticas y para solucionarlas individualmente. Y si ese problema se soluciona fácilmente con queries SQL nativas, existen muchas maneras de integrarlas con JPA.

Comentarios

Entradas populares de este blog

Django REST framework

Envío de checkboxes o selector multiple por AJAX con jQuery

Django: relaciones polimórficas