Java-Repaso de JDBC
Java-Repaso de JDBC
2. Conceptos............................................................................................................2
5. Pool de conexiones..............................................................................................6
1
1. Conexión a base de datos MySQL de forma estructurada
2. Conceptos
2
Son aquellas clases que están representando una tabla proveniente de una base de
datos.
Esta práctica nos ayuda a separar en capas, las diferentes funcionalidades o clases
del programa, teniendo una relación mínima con cada una de ellas
3
3. Transacciones con JDBC
Una transacción es un conjunto de operaciones sobre una base de datos que se
deben ejecutar como una unidad.
Hay ocasiones en las que es necesario que varias operaciones sobre la base de
datos se realicen en bloque, es decir, que se ejecuten o todas o ninguna, pero no
que se realicen unas sí y otras no.
Como ejemplo, supongamos que vamos a reservar un vuelo desde Alicante hasta
Sydney. Para llegar a Sydney tenemos que realizar varias escalas. Tendremos que
reservar un vuelo de Alicante a Madrid, otro de Madrid a Dubai y otro desde Dubai a
Sydney. Si representamos cada reserva como un insert en la base de datos
tendremos las siguientes instrucciones:
4
Un objeto Connection por defecto realiza automáticamente cada operación sobre la
base de datos. Esto significa que cada vez que se ejecuta una instrucción, se refleja
en la base de datos y no puede ser deshecha. Por defecto está habilitado el modo
auto-commit en la conexión.
Los siguientes métodos en la interfaz Connection son utilizados para gestionar las
transacciones en la base de datos:
Una llamada al método commit() realizará todas las instrucciones emitidas desde la
última vez que se invocó el método commit().
Una llamada a rollback() deshará todos los cambios realizados desde el último
commit(). Una vez se ha emitido una instrucción commit(), esas transacciones no
pueden deshacerse con rollback().
5
4. Patrones de diseño y buenas practicas
6
5. Pool de conexiones
Un pool de conexiones es un conjunto limitado de conexiones a una base, que es
manejado por un servidor de aplicaciones de forma tal, que dichas conexiones
pueden ser reutilizadas por los diferentes usuarios. Este pool es administrado por un
servidor de aplicaciones que va asignando las conexiones a medida que los clientes
van solicitando consultas o actualizaciones de datos.
Tanto las aplicaciones web como las aplicaciones win 3 capas utilizan este pool de
conexiones, los que las hace arquitecturas ventajosas frente a una arquitectura
tradicional de cliente / servidor (2 capas).
7
La carga al servidor de base de datos es mayor cuantas más conexiones
abiertas haya.
En la mayoría de los DBMS se debe comprar una licencia de uso por cada
usuario conectado.
No es óptimo, dado que la mayoría de las conexiones están sin hacer nada
una parte importante del tiempo.
La idea general de un pool de conexiones es que cada vez que un cliente necesita
una conexión (esto es, cada vez que prepara un cursor, lo ejecuta, ejecuta una
sentencia directamente, etc.), se la solicita al pool. Esta conexión pertenece al
cliente hasta que de algún modo se determina que no la necesita más, y en ese
momento se le puede asignar la conexión a otro cliente.
Otra ventaja es que las conexiones se mantienen abiertas, por lo que los clientes se
ahorran el tiempo de conexión al DBMS al iniciar la aplicación.