Acceso a datos con JDBC

Anuncio
Acceso a datos con JDBC
Desarrollo de Aplicaciones Empresariales
2014-1
Contenidos
• Introducción a JDBC
• Diseño de la capa de acceso a datos
• Ejemplos
2
Introducción a JDBC
• ¿Cómo podemos acceder a un SGBD desde nuestros
programas?
Petición
Programa
(C, Pascal,
Java, …)
Cliente
SGBD
Datos
Servidor
3
Introducción a JDBC
• Para acceder a un SGBD, utilizamos librerías que nos
proporcionan funciones de alto nivel para:
– Obtener conexiones al SGBD
– Enviar peticiones y recibir su resultado
Programa
(C, Pascal,
Java, …)
Cliente
Librería BD
– Gestionar la interacción (ej. gestión de transacciones)
Petición
SGBD
Datos
Servidor
4
Introducción a JDBC
• Java Database Connectivity (JDBC)
– API estándar de Java que permite la ejecución de
operaciones sobre bases de datos
– La API (paquetes java.sql y javax.sql) contiene un conjunto
de interfaces y clases abstractas que utilizamos en nuestros
programas
– Cada SGBD proporciona un driver, es decir, una librería que
implementa esas interfaces y clases abstractas para ese
SGBD en particular
5
Introducción a JDBC
• Java Database Connectivity (JDBC)
– Al trabajar con una API estándar, en teoría nos proporciona
independencia del SGBD concreto que utilicemos
– Aunque existen pequeñas diferencias en el SQL de cada
SGBD que sí deberemos tener en cuenta
6
Driver Orcl.
Programa
Java
java.sql
Introducción a JDBC
Petición
Oracle
Datos
Servidor
Cliente
Driver PSQL
Programa
Java
java.sql
Cliente
Petición
PostgreSQL
Datos
Servidor
7
Contenidos
• Introducción a JDBC
• Diseño de la capa de acceso a datos
• Ejemplos
8
Diseño de la capa de acceso a datos
• Objetivos
– (En el caso más simple) la capa de acceso a datos
proporciona las operaciones de acceso a los datos
persistentes en una BD
– Debe ser posible modificar la implementación de esta capa
sin que las capas superiores se vean afectadas
– La forma de lograr el objetivo anterior depende de la
tecnología que estemos utilizando
• A lo largo de la asignatura veremos varias alternativas
9
Diseño de la capa de acceso a datos
• Un ejemplo sencillo:
trabajo
nombre
código
nombre
salario
Empleado
localidad
código
trabaja
en
Departamento
10
Diseño de la capa de acceso a datos
• Tenemos dos entidades u objetos del dominio
• Para “Empleados”:
–
–
–
–
–
Buscar un empleado a partir de su código
Buscar todos los que trabajen en un departamento determinado
Insertar un nuevo empleado
Actualizar los datos de un empleado
Eliminar un empleado
• Para “Departamentos”:
–
–
–
–
Buscar un departamento a partir de su código
Insertar un nuevo departamento
Actualizar los datos de un departamento
Eliminar un departamento
11
Diseño de la capa de acceso a datos
• Paquete: es.udc.fi.asi.model.employee
INTERFAZ DEL PAQUETE
IMPLEMENTACIÓN DEL PAQUETE
12
Diseño de la capa de acceso a datos
• Paquete: es.udc.fi.asi.model.employee
INTERFAZ DEL PAQUETE
IMPLEMENTACIÓN
DEL PAQUETE
13
Ejercicios
1. Crear y poblar la base de datos (Scripts en src/sql)
– Opción –f de psql
2. Configurar el fichero pom.xml con los datos de
conexión a la base de datos creada
–
Fijarse también en la gestión de dependencias
3. Configurar base de datos en fichero springmodule.xml
4. Ejecutar RunExamples.java
5. Estudiar el código en el paquete “employee”
14
Ejercicios
6. Incluir en RunExamples.java un método que liste todos
los empleados del departamento 20
–
Nota: requiere modificar EmployeeService.java
7. Complete la clase JdbcDepartmentDAO.java
8. Incluya métodos en RunExamples.java que prueben la
funcionalidad implementada en el ejercicio anterior
–
Para ello se requiere crear DepartmentService.java (basándose
en EmployeeService.java)
9. Estudie la nueva clase DepartmentService.java
–
¿De qué se ocupa?
–
¿Quién configura los DAOs y el gestor de transacciones?
15
Descargar