bases de datos y jdbc - dalila.sip.ucm.esdalila.sip.ucm.es/~manuel/jsw1/slides/basesdedatos.pdf ·...
TRANSCRIPT
![Page 1: Bases de datos y JDBC - dalila.sip.ucm.esdalila.sip.ucm.es/~manuel/JSW1/Slides/BasesDeDatos.pdf · Bases de datos y JDBC Java y Servicios Web I Master en Ingeniería Matemática](https://reader030.vdocuments.co/reader030/viewer/2022020215/5baa47ce09d3f215608bd9ad/html5/thumbnails/1.jpg)
Bases de datos y JDBC
Java y Servicios Web IMaster en Ingeniería Matemática
Manuel MontenegroDpto. Sistemas Informáticos y Computación
Desp. 467 (Mat) [email protected]
![Page 2: Bases de datos y JDBC - dalila.sip.ucm.esdalila.sip.ucm.es/~manuel/JSW1/Slides/BasesDeDatos.pdf · Bases de datos y JDBC Java y Servicios Web I Master en Ingeniería Matemática](https://reader030.vdocuments.co/reader030/viewer/2022020215/5baa47ce09d3f215608bd9ad/html5/thumbnails/2.jpg)
10. Bases de datos y JDBC29 y 30/Mayo/2012 2
Bases de datos
● Una base de datos (DB) es una colección de datos interrelacionados, pertenecientes a un mismo contexto, y almacenados sistemáticamente para su posterior uso.
● Un sistema gestor de bases de datos (DBMS) es un programa que almacena y accede a la información contenida en las bases de datos.
● Una base de datos modela la información sobre ciertas entidades, y sobre relaciones entre las mismas.
![Page 3: Bases de datos y JDBC - dalila.sip.ucm.esdalila.sip.ucm.es/~manuel/JSW1/Slides/BasesDeDatos.pdf · Bases de datos y JDBC Java y Servicios Web I Master en Ingeniería Matemática](https://reader030.vdocuments.co/reader030/viewer/2022020215/5baa47ce09d3f215608bd9ad/html5/thumbnails/3.jpg)
10. Bases de datos y JDBC29 y 30/Mayo/2012 3
Contenidos
● Bases de datos relacionales● Sistemas gestores de bases de datos● Acceso a bases de datos● Consultas SQL● Acceso a bases de datos con JDBC
![Page 4: Bases de datos y JDBC - dalila.sip.ucm.esdalila.sip.ucm.es/~manuel/JSW1/Slides/BasesDeDatos.pdf · Bases de datos y JDBC Java y Servicios Web I Master en Ingeniería Matemática](https://reader030.vdocuments.co/reader030/viewer/2022020215/5baa47ce09d3f215608bd9ad/html5/thumbnails/4.jpg)
10. Bases de datos y JDBC29 y 30/Mayo/2012 4
Entidades
Estudiante
Asignatura
![Page 5: Bases de datos y JDBC - dalila.sip.ucm.esdalila.sip.ucm.es/~manuel/JSW1/Slides/BasesDeDatos.pdf · Bases de datos y JDBC Java y Servicios Web I Master en Ingeniería Matemática](https://reader030.vdocuments.co/reader030/viewer/2022020215/5baa47ce09d3f215608bd9ad/html5/thumbnails/5.jpg)
10. Bases de datos y JDBC29 y 30/Mayo/2012 5
Nombre
Entidades
Estudiante
ApellidosDNI
Teléfonos FechaNacimiento
Asignatura
Código Nombre
CréditosGrupos
Atributos
![Page 6: Bases de datos y JDBC - dalila.sip.ucm.esdalila.sip.ucm.es/~manuel/JSW1/Slides/BasesDeDatos.pdf · Bases de datos y JDBC Java y Servicios Web I Master en Ingeniería Matemática](https://reader030.vdocuments.co/reader030/viewer/2022020215/5baa47ce09d3f215608bd9ad/html5/thumbnails/6.jpg)
10. Bases de datos y JDBC29 y 30/Mayo/2012 6
Nombre
Relaciones
Estudiante
ApellidosDNI
Teléfonos FechaNacimiento
Asignatura
Código Nombre
CréditosGrupos
Matriculado
![Page 7: Bases de datos y JDBC - dalila.sip.ucm.esdalila.sip.ucm.es/~manuel/JSW1/Slides/BasesDeDatos.pdf · Bases de datos y JDBC Java y Servicios Web I Master en Ingeniería Matemática](https://reader030.vdocuments.co/reader030/viewer/2022020215/5baa47ce09d3f215608bd9ad/html5/thumbnails/7.jpg)
10. Bases de datos y JDBC29 y 30/Mayo/2012 7
Nombre
Relaciones
Estudiante
ApellidosDNI
Teléfonos FechaNacimiento
Asignatura
Código Nombre
CréditosGrupos
Matriculado
Grupo
![Page 8: Bases de datos y JDBC - dalila.sip.ucm.esdalila.sip.ucm.es/~manuel/JSW1/Slides/BasesDeDatos.pdf · Bases de datos y JDBC Java y Servicios Web I Master en Ingeniería Matemática](https://reader030.vdocuments.co/reader030/viewer/2022020215/5baa47ce09d3f215608bd9ad/html5/thumbnails/8.jpg)
10. Bases de datos y JDBC29 y 30/Mayo/2012 8
Nombre
Relaciones
Estudiante
ApellidosDNI
Teléfonos FechaNacimiento
Asignatura
Código Nombre
CréditosGrupos
Matriculado
Grupo
0..*
0..*
Relaciones:
– Uno a uno– Uno a varios– Varios a varios.
![Page 9: Bases de datos y JDBC - dalila.sip.ucm.esdalila.sip.ucm.es/~manuel/JSW1/Slides/BasesDeDatos.pdf · Bases de datos y JDBC Java y Servicios Web I Master en Ingeniería Matemática](https://reader030.vdocuments.co/reader030/viewer/2022020215/5baa47ce09d3f215608bd9ad/html5/thumbnails/9.jpg)
10. Bases de datos y JDBC29 y 30/Mayo/2012 9
Bases de datos relacionales
● Modelos de bases de datos:● Relacionales.● Jerárquicos.● Orientado a objetos.● etc.
● El modelo relacional de base de datos es el más usado en la actualidad.
● Se basa en la idea de relación, considerada como un conjunto de tuplas. Cada relación es una tabla con filas (registros) y columnas (atributos)
![Page 10: Bases de datos y JDBC - dalila.sip.ucm.esdalila.sip.ucm.es/~manuel/JSW1/Slides/BasesDeDatos.pdf · Bases de datos y JDBC Java y Servicios Web I Master en Ingeniería Matemática](https://reader030.vdocuments.co/reader030/viewer/2022020215/5baa47ce09d3f215608bd9ad/html5/thumbnails/10.jpg)
10. Bases de datos y JDBC29 y 30/Mayo/2012 10
Bases de datos relacionales
DNI Nombre Apellidos Fecha Nac. Teléfonos
12345673V Ricardo Fernández Aguinaga 20/04/1980 912421124617293744
82122314X Luis Díaz Castro 25/04/1978 913111564
... ... ... ... ...
Código Nombre Créditos Grupos
101 Álgebra 15 A,B,C
102 Funciones de una variable
12 A,B,C
... ... ... ...
Estudiante
Asignatura
![Page 11: Bases de datos y JDBC - dalila.sip.ucm.esdalila.sip.ucm.es/~manuel/JSW1/Slides/BasesDeDatos.pdf · Bases de datos y JDBC Java y Servicios Web I Master en Ingeniería Matemática](https://reader030.vdocuments.co/reader030/viewer/2022020215/5baa47ce09d3f215608bd9ad/html5/thumbnails/11.jpg)
10. Bases de datos y JDBC29 y 30/Mayo/2012 11
Bases de datos relacionales
DNI Estudiante Cod. Asignatura Grupo
12345673V 101 A
12345673V 102 A
82122314X 101 B
... ... ...
Matriculado
![Page 12: Bases de datos y JDBC - dalila.sip.ucm.esdalila.sip.ucm.es/~manuel/JSW1/Slides/BasesDeDatos.pdf · Bases de datos y JDBC Java y Servicios Web I Master en Ingeniería Matemática](https://reader030.vdocuments.co/reader030/viewer/2022020215/5baa47ce09d3f215608bd9ad/html5/thumbnails/12.jpg)
10. Bases de datos y JDBC29 y 30/Mayo/2012 12
Atomicidad
● Las columnas sólo pueden tener valores atómicos. En particular:● No podemos tener una lista de números de
teléfono dentro de una celda de la tabla de estudiantes.
● No podemos tener una lista de grupos dentro de una celda de la tabla de asignaturas.
● Estas restricciones pueden solventarse mediante la creación de relaciones adicionales.
![Page 13: Bases de datos y JDBC - dalila.sip.ucm.esdalila.sip.ucm.es/~manuel/JSW1/Slides/BasesDeDatos.pdf · Bases de datos y JDBC Java y Servicios Web I Master en Ingeniería Matemática](https://reader030.vdocuments.co/reader030/viewer/2022020215/5baa47ce09d3f215608bd9ad/html5/thumbnails/13.jpg)
10. Bases de datos y JDBC29 y 30/Mayo/2012 13
AtomicidadDNI Nombre Apellidos Fecha Nac. Teléfonos
12345673V Ricardo Fernández Aguinaga 20/04/1980 912421124617293744
82122314X Luis Díaz Castro 25/04/1978 913111564
... ... ... ... ...
DNI Nombre Apellidos Fecha Nac. Teléfonos
12345673V Ricardo Fernández Aguinaga 20/04/1980 912421124
12345673V Ricardo Fernández Aguinaga 20/04/1980 617293744
82122314X Luis Díaz Castro 25/04/1978 913111564
... ... ... ... ...
Redundancia
![Page 14: Bases de datos y JDBC - dalila.sip.ucm.esdalila.sip.ucm.es/~manuel/JSW1/Slides/BasesDeDatos.pdf · Bases de datos y JDBC Java y Servicios Web I Master en Ingeniería Matemática](https://reader030.vdocuments.co/reader030/viewer/2022020215/5baa47ce09d3f215608bd9ad/html5/thumbnails/14.jpg)
10. Bases de datos y JDBC29 y 30/Mayo/2012 14
AtomicidadDNI Nombre Apellidos Fecha Nac. Teléfonos
12345673V Ricardo Fernández Aguinaga 20/04/1980 912421124617293744
82122314X Luis Díaz Castro 25/04/1978 913111564
... ... ... ... ...
DNI Nombre Apellidos Fecha Nac.
12345673V Ricardo Fernández Aguinaga 20/04/1980
82122314X Luis Díaz Castro 25/04/1978
... ... ... ...
DNI Teléfono
12345673V 912421124
12345673V 617293744
82122314X 913111564
... ...
![Page 15: Bases de datos y JDBC - dalila.sip.ucm.esdalila.sip.ucm.es/~manuel/JSW1/Slides/BasesDeDatos.pdf · Bases de datos y JDBC Java y Servicios Web I Master en Ingeniería Matemática](https://reader030.vdocuments.co/reader030/viewer/2022020215/5baa47ce09d3f215608bd9ad/html5/thumbnails/15.jpg)
10. Bases de datos y JDBC29 y 30/Mayo/2012 15
Atomicidad
Código Grupo
101 A
101 B
101 C
102 A
102 B
102 C
... ...
Código Nombre Créditos Grupos
101 Álgebra 15 A,B,C
102 Funciones de una variable
12 A,B,C
... ... ... ...
Código Nombre Créditos
101 Álgebra 15
102 Funciones de una variable
12
... ... ...
![Page 16: Bases de datos y JDBC - dalila.sip.ucm.esdalila.sip.ucm.es/~manuel/JSW1/Slides/BasesDeDatos.pdf · Bases de datos y JDBC Java y Servicios Web I Master en Ingeniería Matemática](https://reader030.vdocuments.co/reader030/viewer/2022020215/5baa47ce09d3f215608bd9ad/html5/thumbnails/16.jpg)
10. Bases de datos y JDBC29 y 30/Mayo/2012 16
Bases de datos relacionales
● El modelo relacional de nuestra base de datos quedaría:● Estudiante(DNI, Nombre, Apellido, FechaNac)● Asignatura(Codigo, Nombre, NumCreditos)● Matriculado(DNIEstud, CodigoAsig, Grupo)● TieneTlf(DNIEstud, Telefono)● TieneGrupo(CodigoAsig, Grupo)
![Page 17: Bases de datos y JDBC - dalila.sip.ucm.esdalila.sip.ucm.es/~manuel/JSW1/Slides/BasesDeDatos.pdf · Bases de datos y JDBC Java y Servicios Web I Master en Ingeniería Matemática](https://reader030.vdocuments.co/reader030/viewer/2022020215/5baa47ce09d3f215608bd9ad/html5/thumbnails/17.jpg)
10. Bases de datos y JDBC29 y 30/Mayo/2012 17
Claves
● Las claves de una tabla es el conjunto de campos que identifican unívocamente a cada registro de la tabla.● Debe tener siempre un valor en cada registro.● El valor debe permanecer inalterable.● No pueden existir dos registros dentro de la misma
tabla con la misma clave.
![Page 18: Bases de datos y JDBC - dalila.sip.ucm.esdalila.sip.ucm.es/~manuel/JSW1/Slides/BasesDeDatos.pdf · Bases de datos y JDBC Java y Servicios Web I Master en Ingeniería Matemática](https://reader030.vdocuments.co/reader030/viewer/2022020215/5baa47ce09d3f215608bd9ad/html5/thumbnails/18.jpg)
10. Bases de datos y JDBC29 y 30/Mayo/2012 18
Claves
● Las claves de cada tabla se representan mediante el subrayado en el modelo relacional.● Estudiante(DNI, Nombre, Apellido, FechaNac)● Asignatura(Codigo, Nombre, NumCreditos)● Matriculado(DNIEstud, CodigoAsig, Grupo)● TieneTlf(DNIEstud, Telefono)● TieneGrupo(CodigoAsig, Grupo)
![Page 19: Bases de datos y JDBC - dalila.sip.ucm.esdalila.sip.ucm.es/~manuel/JSW1/Slides/BasesDeDatos.pdf · Bases de datos y JDBC Java y Servicios Web I Master en Ingeniería Matemática](https://reader030.vdocuments.co/reader030/viewer/2022020215/5baa47ce09d3f215608bd9ad/html5/thumbnails/19.jpg)
10. Bases de datos y JDBC29 y 30/Mayo/2012 19
Claves
● Una clave externa es la representación de la clave de una tabla en otra.● Estudiante(DNI, Nombre, Apellido, FechaNac)● Asignatura(Codigo, Nombre, NumCreditos)● Matriculado(DNIEstud, CodigoAsig, Grupo)● TieneTlf(DNIEstud, Telefono)● TieneGrupo(CodigoAsig, Grupo)
![Page 20: Bases de datos y JDBC - dalila.sip.ucm.esdalila.sip.ucm.es/~manuel/JSW1/Slides/BasesDeDatos.pdf · Bases de datos y JDBC Java y Servicios Web I Master en Ingeniería Matemática](https://reader030.vdocuments.co/reader030/viewer/2022020215/5baa47ce09d3f215608bd9ad/html5/thumbnails/20.jpg)
10. Bases de datos y JDBC29 y 30/Mayo/2012 20
Contenidos
● Bases de datos relacionales● Sistemas gestores de bases de datos● Acceso a bases de datos● Consultas SQL● Acceso a bases de datos con JDBC
![Page 21: Bases de datos y JDBC - dalila.sip.ucm.esdalila.sip.ucm.es/~manuel/JSW1/Slides/BasesDeDatos.pdf · Bases de datos y JDBC Java y Servicios Web I Master en Ingeniería Matemática](https://reader030.vdocuments.co/reader030/viewer/2022020215/5baa47ce09d3f215608bd9ad/html5/thumbnails/21.jpg)
10. Bases de datos y JDBC29 y 30/Mayo/2012 21
Gestores de bases de datos
● Existe una gran cantidad de gestores de bases de datos relacionales.● Oracle● Microsoft SQL Server● Microsoft Access● MySQL● PostgreSQL
![Page 22: Bases de datos y JDBC - dalila.sip.ucm.esdalila.sip.ucm.es/~manuel/JSW1/Slides/BasesDeDatos.pdf · Bases de datos y JDBC Java y Servicios Web I Master en Ingeniería Matemática](https://reader030.vdocuments.co/reader030/viewer/2022020215/5baa47ce09d3f215608bd9ad/html5/thumbnails/22.jpg)
10. Bases de datos y JDBC29 y 30/Mayo/2012 22
Gestores de bases de datos
DBMS DatosAplicaciónConsultasModificaciones
Programador
Lenguaje SQL
![Page 23: Bases de datos y JDBC - dalila.sip.ucm.esdalila.sip.ucm.es/~manuel/JSW1/Slides/BasesDeDatos.pdf · Bases de datos y JDBC Java y Servicios Web I Master en Ingeniería Matemática](https://reader030.vdocuments.co/reader030/viewer/2022020215/5baa47ce09d3f215608bd9ad/html5/thumbnails/23.jpg)
10. Bases de datos y JDBC29 y 30/Mayo/2012 23
Lenguaje SQL
● SQL (Structured Query Language)● Es un lenguaje declarativo de acceso a bases
de datos relacionales.● DDL (Data definition language)
Modificación de la estructura de la base de datos.Creación de tablas.
● DML (Data manipulation language)Consulta, inserción, y eliminación de registros dentro de una tabla.
![Page 24: Bases de datos y JDBC - dalila.sip.ucm.esdalila.sip.ucm.es/~manuel/JSW1/Slides/BasesDeDatos.pdf · Bases de datos y JDBC Java y Servicios Web I Master en Ingeniería Matemática](https://reader030.vdocuments.co/reader030/viewer/2022020215/5baa47ce09d3f215608bd9ad/html5/thumbnails/24.jpg)
10. Bases de datos y JDBC29 y 30/Mayo/2012 24
Contenidos
● Bases de datos relacionales● Sistemas gestores de bases de datos● Acceso a bases de datos● Consultas SQL● Acceso a bases de datos con JDBC
![Page 25: Bases de datos y JDBC - dalila.sip.ucm.esdalila.sip.ucm.es/~manuel/JSW1/Slides/BasesDeDatos.pdf · Bases de datos y JDBC Java y Servicios Web I Master en Ingeniería Matemática](https://reader030.vdocuments.co/reader030/viewer/2022020215/5baa47ce09d3f215608bd9ad/html5/thumbnails/25.jpg)
10. Bases de datos y JDBC29 y 30/Mayo/2012 25
Acceso a bases de datos
Aplicación
Programador
● Desde Java: JDBC + driver MySQL
● Consola de MySQL.● Herramienta gráfica (phpMyAdmin)
![Page 26: Bases de datos y JDBC - dalila.sip.ucm.esdalila.sip.ucm.es/~manuel/JSW1/Slides/BasesDeDatos.pdf · Bases de datos y JDBC Java y Servicios Web I Master en Ingeniería Matemática](https://reader030.vdocuments.co/reader030/viewer/2022020215/5baa47ce09d3f215608bd9ad/html5/thumbnails/26.jpg)
10. Bases de datos y JDBC29 y 30/Mayo/2012 26
Herramienta phpMyAdmin
● Interfaz web para MySQL.● Situada en http://dalila.sip.ucm.es/phpmyadmin
● Nombre de usuario y contraseña:¡Pregunta al profesor!
![Page 27: Bases de datos y JDBC - dalila.sip.ucm.esdalila.sip.ucm.es/~manuel/JSW1/Slides/BasesDeDatos.pdf · Bases de datos y JDBC Java y Servicios Web I Master en Ingeniería Matemática](https://reader030.vdocuments.co/reader030/viewer/2022020215/5baa47ce09d3f215608bd9ad/html5/thumbnails/27.jpg)
10. Bases de datos y JDBC29 y 30/Mayo/2012 27
Herramienta phpMyAdmin
● Lista de bases de datos
![Page 28: Bases de datos y JDBC - dalila.sip.ucm.esdalila.sip.ucm.es/~manuel/JSW1/Slides/BasesDeDatos.pdf · Bases de datos y JDBC Java y Servicios Web I Master en Ingeniería Matemática](https://reader030.vdocuments.co/reader030/viewer/2022020215/5baa47ce09d3f215608bd9ad/html5/thumbnails/28.jpg)
10. Bases de datos y JDBC29 y 30/Mayo/2012 28
Crear tablas
![Page 29: Bases de datos y JDBC - dalila.sip.ucm.esdalila.sip.ucm.es/~manuel/JSW1/Slides/BasesDeDatos.pdf · Bases de datos y JDBC Java y Servicios Web I Master en Ingeniería Matemática](https://reader030.vdocuments.co/reader030/viewer/2022020215/5baa47ce09d3f215608bd9ad/html5/thumbnails/29.jpg)
10. Bases de datos y JDBC29 y 30/Mayo/2012 29
Tipos de datos
● CHAR(Longitud)● VARCHAR(Longitud)● TINYTEXT● TEXT● MEDIUMTEXT● TINYINT● SMALLINT● MEDIUMINT● INT
● BIGINT● FLOAT● DOUBLE● DECIMAL● DATE● DATETIME● TIMESTAMP● TIME● ENUM
![Page 30: Bases de datos y JDBC - dalila.sip.ucm.esdalila.sip.ucm.es/~manuel/JSW1/Slides/BasesDeDatos.pdf · Bases de datos y JDBC Java y Servicios Web I Master en Ingeniería Matemática](https://reader030.vdocuments.co/reader030/viewer/2022020215/5baa47ce09d3f215608bd9ad/html5/thumbnails/30.jpg)
10. Bases de datos y JDBC29 y 30/Mayo/2012 30
Insertar registros en una tabla
![Page 31: Bases de datos y JDBC - dalila.sip.ucm.esdalila.sip.ucm.es/~manuel/JSW1/Slides/BasesDeDatos.pdf · Bases de datos y JDBC Java y Servicios Web I Master en Ingeniería Matemática](https://reader030.vdocuments.co/reader030/viewer/2022020215/5baa47ce09d3f215608bd9ad/html5/thumbnails/31.jpg)
10. Bases de datos y JDBC29 y 30/Mayo/2012 31
Contenidos
● Bases de datos relacionales● Sistemas gestores de bases de datos● Acceso a bases de datos● Consultas SQL● Acceso a bases de datos con JDBC
![Page 32: Bases de datos y JDBC - dalila.sip.ucm.esdalila.sip.ucm.es/~manuel/JSW1/Slides/BasesDeDatos.pdf · Bases de datos y JDBC Java y Servicios Web I Master en Ingeniería Matemática](https://reader030.vdocuments.co/reader030/viewer/2022020215/5baa47ce09d3f215608bd9ad/html5/thumbnails/32.jpg)
10. Bases de datos y JDBC29 y 30/Mayo/2012 32
Consultas en SQL
● Obtener todas las filas y columnas de una tabla.
SELECT * FROM Estudiantes
DNI Nombre Apellidos FechaNac
12345673V Ricardo Fernández Aguinaga 1980-04-25
82122314X Luis Díaz Castro 1978-04-15
20358182T Marta Domínguez Iborra 1975-12-21
29377172M Roberto Blanco Rodrigo 1981-12-22
45219913T Marta Díaz Agrela 1983-01-20
40231491M Martín Montes Di Cesare 1979-03-15
23195991S Sandra González de Castro 1982-11-21
29918481X Francisca Montes Trujillo 1907-10-19
![Page 33: Bases de datos y JDBC - dalila.sip.ucm.esdalila.sip.ucm.es/~manuel/JSW1/Slides/BasesDeDatos.pdf · Bases de datos y JDBC Java y Servicios Web I Master en Ingeniería Matemática](https://reader030.vdocuments.co/reader030/viewer/2022020215/5baa47ce09d3f215608bd9ad/html5/thumbnails/33.jpg)
10. Bases de datos y JDBC29 y 30/Mayo/2012 33
Consultas en SQL
● Obtener ciertas columnas de una tabla
SELECT DNI, NombreFROM Estudiantes
DNI Nombre
12345673V Ricardo
82122314X Luis
20358182T Marta
29377172M Roberto
45219913T Laura
40231491M Martín
23195991S Sandra
29918481X Francisca
![Page 34: Bases de datos y JDBC - dalila.sip.ucm.esdalila.sip.ucm.es/~manuel/JSW1/Slides/BasesDeDatos.pdf · Bases de datos y JDBC Java y Servicios Web I Master en Ingeniería Matemática](https://reader030.vdocuments.co/reader030/viewer/2022020215/5baa47ce09d3f215608bd9ad/html5/thumbnails/34.jpg)
10. Bases de datos y JDBC29 y 30/Mayo/2012 34
Consultas en SQL
● Imponer condiciones a las filas resultado.
SELECT DNI, Nombre, ApellidosFROM EstudiantesWHERE Nombre = 'Marta'
DNI Nombre Apellidos
20358182T Marta Domínguez Iborra
45219913T Marta Díaz Agrela
![Page 35: Bases de datos y JDBC - dalila.sip.ucm.esdalila.sip.ucm.es/~manuel/JSW1/Slides/BasesDeDatos.pdf · Bases de datos y JDBC Java y Servicios Web I Master en Ingeniería Matemática](https://reader030.vdocuments.co/reader030/viewer/2022020215/5baa47ce09d3f215608bd9ad/html5/thumbnails/35.jpg)
10. Bases de datos y JDBC29 y 30/Mayo/2012 35
Consultas en SQL
● Imponer condiciones a las filas resultado.
SELECT DNI, Nombre, ApellidosFROM EstudiantesWHERE FechaNac >= '1980-01-01' AND FechaNac < '1990-01-01'
DNI Nombre Apellidos
12345673V Ricardo Fernández Aguinaga
29377172M Roberto Blanco Rodrigo
45219913T Marta Díaz Agrela
23195991S Sandra González de Castro
![Page 36: Bases de datos y JDBC - dalila.sip.ucm.esdalila.sip.ucm.es/~manuel/JSW1/Slides/BasesDeDatos.pdf · Bases de datos y JDBC Java y Servicios Web I Master en Ingeniería Matemática](https://reader030.vdocuments.co/reader030/viewer/2022020215/5baa47ce09d3f215608bd9ad/html5/thumbnails/36.jpg)
10. Bases de datos y JDBC29 y 30/Mayo/2012 36
Consultas en SQL
● Imponer condiciones a las filas resultado.
SELECT DNI, Nombre, ApellidosFROM EstudiantesWHERE FechaNac BETWEEN '1980-01-01' AND '1990-01-01'
DNI Nombre Apellidos
12345673V Ricardo Fernández Aguinaga
29377172M Roberto Blanco Rodrigo
45219913T Marta Díaz Agrela
23195991S Sandra González de Castro
![Page 37: Bases de datos y JDBC - dalila.sip.ucm.esdalila.sip.ucm.es/~manuel/JSW1/Slides/BasesDeDatos.pdf · Bases de datos y JDBC Java y Servicios Web I Master en Ingeniería Matemática](https://reader030.vdocuments.co/reader030/viewer/2022020215/5baa47ce09d3f215608bd9ad/html5/thumbnails/37.jpg)
10. Bases de datos y JDBC29 y 30/Mayo/2012 37
Consultas en SQL
● Imponer condiciones a las filas resultado.
SELECT DNI, Nombre, ApellidosFROM EstudiantesWHERE Apellidos LIKE 'D%'
DNI Nombre Apellidos FechaNac
82122314X Luis Díaz Castro 1978-04-15
20358182T Marta Domínguez Iborra 1975-12-21
45219913T Marta Díaz Agrela 1983-01-20
![Page 38: Bases de datos y JDBC - dalila.sip.ucm.esdalila.sip.ucm.es/~manuel/JSW1/Slides/BasesDeDatos.pdf · Bases de datos y JDBC Java y Servicios Web I Master en Ingeniería Matemática](https://reader030.vdocuments.co/reader030/viewer/2022020215/5baa47ce09d3f215608bd9ad/html5/thumbnails/38.jpg)
10. Bases de datos y JDBC29 y 30/Mayo/2012 38
Consultas en SQL
● Imponer condiciones a las filas resultado.
SELECT DNI, Nombre, ApellidosFROM EstudiantesWHERE Apellidos LIKE 'D%'
DNI Nombre Apellidos FechaNac
82122314X Luis Díaz Castro 1978-04-15
20358182T Marta Domínguez Iborra 1975-12-21
45219913T Marta Díaz Agrela 1983-01-20
![Page 39: Bases de datos y JDBC - dalila.sip.ucm.esdalila.sip.ucm.es/~manuel/JSW1/Slides/BasesDeDatos.pdf · Bases de datos y JDBC Java y Servicios Web I Master en Ingeniería Matemática](https://reader030.vdocuments.co/reader030/viewer/2022020215/5baa47ce09d3f215608bd9ad/html5/thumbnails/39.jpg)
10. Bases de datos y JDBC29 y 30/Mayo/2012 39
Consultas en SQL
● Producto cartesianoSELECT DNI, Apellidos, DNIEstud, CodigoAsigFROM Estudiantes, Matriculado
DNI Apellidos DNIEstud CodigoAsig
12345673V Fernández Aguinaga 12345673V 803261
12345673V Fernández Aguinaga 12345673V 803265
12345673V Fernández Aguinaga 12345673V 803262
12345673V Fernández Aguinaga 29377172M 803265
12345673V Fernández Aguinaga 29377172M 803261
12345673V Fernández Aguinaga 23195991S 803261
82122314X Díaz Castro 12345673V 803261
82122314X Díaz Castro 12345673V 803265
… … … …
![Page 40: Bases de datos y JDBC - dalila.sip.ucm.esdalila.sip.ucm.es/~manuel/JSW1/Slides/BasesDeDatos.pdf · Bases de datos y JDBC Java y Servicios Web I Master en Ingeniería Matemática](https://reader030.vdocuments.co/reader030/viewer/2022020215/5baa47ce09d3f215608bd9ad/html5/thumbnails/40.jpg)
10. Bases de datos y JDBC29 y 30/Mayo/2012 40
Consultas en SQL
● Producto cartesianoSELECT DNI, Apellidos, DNIEstud, CodigoAsigFROM Estudiantes, MatriculadoWHERE DNI = DNIEstud
DNI Apellidos DNIEstud CodigoAsig
12345673V Fernández Aguinaga 12345673V 803261
12345673V Fernández Aguinaga 12345673V 803265
12345673V Fernández Aguinaga 12345673V 803262
29377172M Blanco Rodrigo 29377172M 803265
29377172M Blanco Rodrigo 29377172M 803265
23195991S González de Castro 23195991S 803261
![Page 41: Bases de datos y JDBC - dalila.sip.ucm.esdalila.sip.ucm.es/~manuel/JSW1/Slides/BasesDeDatos.pdf · Bases de datos y JDBC Java y Servicios Web I Master en Ingeniería Matemática](https://reader030.vdocuments.co/reader030/viewer/2022020215/5baa47ce09d3f215608bd9ad/html5/thumbnails/41.jpg)
10. Bases de datos y JDBC29 y 30/Mayo/2012 41
Consultas en SQL
● Producto cartesianoSELECT Estudiantes.DNI, Estudiantes.Apellidos, Matriculado.CodigoAsigFROM Estudiantes, MatriculadoWHERE Estudiantes.DNI = Matriculado.DNIEstud
DNI Apellidos CodigoAsig
12345673V Fernández Aguinaga 803261
12345673V Fernández Aguinaga 803265
12345673V Fernández Aguinaga 803262
29377172M Blanco Rodrigo 803265
29377172M Blanco Rodrigo 803265
23195991S González de Castro 803261
![Page 42: Bases de datos y JDBC - dalila.sip.ucm.esdalila.sip.ucm.es/~manuel/JSW1/Slides/BasesDeDatos.pdf · Bases de datos y JDBC Java y Servicios Web I Master en Ingeniería Matemática](https://reader030.vdocuments.co/reader030/viewer/2022020215/5baa47ce09d3f215608bd9ad/html5/thumbnails/42.jpg)
10. Bases de datos y JDBC29 y 30/Mayo/2012 42
Consultas en SQL
● Uso de funcionesSELECT Estudiantes.DNI, Estudiantes.Apellidos, LENGTH(Asignaturas.Nombre)FROM Estudiantes, Matriculado, AsignaturasWHERE Estudiantes.DNI = Matriculado.DNIEstud AND Asignaturas.Codigo = Matriculado.CodigoAsig
DNI Apellidos LENGTH(Nombre)
12345673V Fernández Aguinaga 41
12345673V Fernández Aguinaga 36
12345673V Fernández Aguinaga 27
29377172M Blanco Rodrigo 41
29377172M Blanco Rodrigo 27
23195991S González de Castro 41
![Page 43: Bases de datos y JDBC - dalila.sip.ucm.esdalila.sip.ucm.es/~manuel/JSW1/Slides/BasesDeDatos.pdf · Bases de datos y JDBC Java y Servicios Web I Master en Ingeniería Matemática](https://reader030.vdocuments.co/reader030/viewer/2022020215/5baa47ce09d3f215608bd9ad/html5/thumbnails/43.jpg)
10. Bases de datos y JDBC29 y 30/Mayo/2012 43
Consultas en SQL
● Renombramientos de columnasSELECT Estudiantes.DNI, Estudiantes.Apellidos, LENGTH(Asignaturas.Nombre) AS LongitudFROM Estudiantes, Matriculado, AsignaturasWHERE Estudiantes.DNI = Matriculado.DNIEstud AND Asignaturas.Codigo = Matriculado.CodigoAsig
DNI Apellidos Longitud
12345673V Fernández Aguinaga 41
12345673V Fernández Aguinaga 36
12345673V Fernández Aguinaga 27
29377172M Blanco Rodrigo 41
29377172M Blanco Rodrigo 27
23195991S González de Castro 41
![Page 44: Bases de datos y JDBC - dalila.sip.ucm.esdalila.sip.ucm.es/~manuel/JSW1/Slides/BasesDeDatos.pdf · Bases de datos y JDBC Java y Servicios Web I Master en Ingeniería Matemática](https://reader030.vdocuments.co/reader030/viewer/2022020215/5baa47ce09d3f215608bd9ad/html5/thumbnails/44.jpg)
10. Bases de datos y JDBC29 y 30/Mayo/2012 44
Funciones de SQL
● LENGTH(col)
● LEFT(col,n)
● RIGHT(col,n)
● TRIM(col)
● UPPER(col)
● LOWER(col)
● SUBSTRING(col,ini,fin)
● …
● HOUR(col)
● MINUTE(col)
● SECOND(col)
● DAYNAME(col)
● CURDATE()
● NOW()
● …
Cadenas Fechas/Horas
![Page 45: Bases de datos y JDBC - dalila.sip.ucm.esdalila.sip.ucm.es/~manuel/JSW1/Slides/BasesDeDatos.pdf · Bases de datos y JDBC Java y Servicios Web I Master en Ingeniería Matemática](https://reader030.vdocuments.co/reader030/viewer/2022020215/5baa47ce09d3f215608bd9ad/html5/thumbnails/45.jpg)
10. Bases de datos y JDBC29 y 30/Mayo/2012 45
Consultas en SQL
● AgrupamientosSELECT DNIEstud, CodigoAsigFROM Matriculado
DNIEstud CodigoAsig
12345673V 803261
12345673V 803265
12345673V 803262
29377172M 803265
29377172M 803261
23195991S 803261
![Page 46: Bases de datos y JDBC - dalila.sip.ucm.esdalila.sip.ucm.es/~manuel/JSW1/Slides/BasesDeDatos.pdf · Bases de datos y JDBC Java y Servicios Web I Master en Ingeniería Matemática](https://reader030.vdocuments.co/reader030/viewer/2022020215/5baa47ce09d3f215608bd9ad/html5/thumbnails/46.jpg)
10. Bases de datos y JDBC29 y 30/Mayo/2012 46
Consultas en SQL
● AgrupamientosSELECT COUNT(*) AS NumAls, CodigoAsigFROM MatriculadoGROUP BY DNIEstud
NumAls CodigoAsig
3 803261
2 803265
1 803262
![Page 47: Bases de datos y JDBC - dalila.sip.ucm.esdalila.sip.ucm.es/~manuel/JSW1/Slides/BasesDeDatos.pdf · Bases de datos y JDBC Java y Servicios Web I Master en Ingeniería Matemática](https://reader030.vdocuments.co/reader030/viewer/2022020215/5baa47ce09d3f215608bd9ad/html5/thumbnails/47.jpg)
10. Bases de datos y JDBC29 y 30/Mayo/2012 47
Funciones de agrupamiento
● MIN(col)● MAX(col)● SUM(col)● COUNT(col)● AVG(col)
![Page 48: Bases de datos y JDBC - dalila.sip.ucm.esdalila.sip.ucm.es/~manuel/JSW1/Slides/BasesDeDatos.pdf · Bases de datos y JDBC Java y Servicios Web I Master en Ingeniería Matemática](https://reader030.vdocuments.co/reader030/viewer/2022020215/5baa47ce09d3f215608bd9ad/html5/thumbnails/48.jpg)
10. Bases de datos y JDBC29 y 30/Mayo/2012 48
Consultas en SQL
● Agrupamientos + CondicionesSELECT COUNT(*) AS NumAls, CodigoAsigFROM MatriculadoGROUP BY DNIEstudHAVING COUNT(*) >= 3
NumAls CodigoAsig
3 803261
![Page 49: Bases de datos y JDBC - dalila.sip.ucm.esdalila.sip.ucm.es/~manuel/JSW1/Slides/BasesDeDatos.pdf · Bases de datos y JDBC Java y Servicios Web I Master en Ingeniería Matemática](https://reader030.vdocuments.co/reader030/viewer/2022020215/5baa47ce09d3f215608bd9ad/html5/thumbnails/49.jpg)
10. Bases de datos y JDBC29 y 30/Mayo/2012 49
Inserciones en SQLINSERT INTO Estudiantes (DNI, Nombre, Apellidos, FechaNac)VALUES ('12314561F', 'Carolina', 'Rodriguez Yagüe', '1983-05-20')
DNI Nombre Apellidos FechaNac
12345673V Ricardo Fernández Aguinaga 1980-04-25
82122314X Luis Díaz Castro 1978-04-15
20358182T Marta Domínguez Iborra 1975-12-21
29377172M Roberto Blanco Rodrigo 1981-12-22
45219913T Marta Díaz Agrela 1983-01-20
40231491M Martín Montes Di Cesare 1979-03-15
23195991S Sandra González de Castro 1982-11-21
29918481X Francisca Montes Trujillo 1907-10-19
12314561F Carolina Rodríguez Yagüe 1983-05-20
![Page 50: Bases de datos y JDBC - dalila.sip.ucm.esdalila.sip.ucm.es/~manuel/JSW1/Slides/BasesDeDatos.pdf · Bases de datos y JDBC Java y Servicios Web I Master en Ingeniería Matemática](https://reader030.vdocuments.co/reader030/viewer/2022020215/5baa47ce09d3f215608bd9ad/html5/thumbnails/50.jpg)
10. Bases de datos y JDBC29 y 30/Mayo/2012 50
Actualizaciones en SQLUPDATE Estudiantes SET Nombre='Javier'WHERE DNI='82122314X'
● Si no se especifica cláusula WHERE, se actualizarán todas las filas.
DNI Nombre Apellidos FechaNac
12345673V Ricardo Fernández Aguinaga 1980-04-25
82122314X Javier Díaz Castro 1978-04-15
20358182T Marta Domínguez Iborra 1975-12-21
29377172M Roberto Blanco Rodrigo 1981-12-22
45219913T Marta Díaz Agrela 1983-01-20
40231491M Martín Montes Di Cesare 1979-03-15
23195991S Sandra González de Castro 1982-11-21
29918481X Francisca Montes Trujillo 1907-10-19
12314561F Carolina Rodríguez Yagüe 1983-05-20
![Page 51: Bases de datos y JDBC - dalila.sip.ucm.esdalila.sip.ucm.es/~manuel/JSW1/Slides/BasesDeDatos.pdf · Bases de datos y JDBC Java y Servicios Web I Master en Ingeniería Matemática](https://reader030.vdocuments.co/reader030/viewer/2022020215/5baa47ce09d3f215608bd9ad/html5/thumbnails/51.jpg)
10. Bases de datos y JDBC29 y 30/Mayo/2012 51
Borrar registros en SQLDELETE FROM EstudiantesWHERE FechaNac BETWEEN '1980-01-01' AND '1990-01-01'
● Si no se especifica cláusula WHERE, se borrarán todas las filas.
DNI Nombre Apellidos FechaNac
12345673V Ricardo Fernández Aguinaga 1980-04-25
82122314X Javier Díaz Castro 1978-04-15
20358182T Marta Domínguez Iborra 1975-12-21
29377172M Roberto Blanco Rodrigo 1981-12-22
45219913T Marta Díaz Agrela 1983-01-20
40231491M Martín Montes Di Cesare 1979-03-15
23195991S Sandra González de Castro 1982-11-21
29918481X Francisca Montes Trujillo 1907-10-19
12314561F Carolina Rodríguez Yagüe 1983-05-20
![Page 52: Bases de datos y JDBC - dalila.sip.ucm.esdalila.sip.ucm.es/~manuel/JSW1/Slides/BasesDeDatos.pdf · Bases de datos y JDBC Java y Servicios Web I Master en Ingeniería Matemática](https://reader030.vdocuments.co/reader030/viewer/2022020215/5baa47ce09d3f215608bd9ad/html5/thumbnails/52.jpg)
10. Bases de datos y JDBC29 y 30/Mayo/2012 52
Contenidos
● Bases de datos relacionales● Sistemas gestores de bases de datos● Acceso a bases de datos● Consultas SQL● Acceso a bases de datos con JDBC
![Page 53: Bases de datos y JDBC - dalila.sip.ucm.esdalila.sip.ucm.es/~manuel/JSW1/Slides/BasesDeDatos.pdf · Bases de datos y JDBC Java y Servicios Web I Master en Ingeniería Matemática](https://reader030.vdocuments.co/reader030/viewer/2022020215/5baa47ce09d3f215608bd9ad/html5/thumbnails/53.jpg)
10. Bases de datos y JDBC29 y 30/Mayo/2012 53
JDBC
● JDBC: Java Database Connectivity● Paquete java.sql● API de acceso a bases de datos desde Java.● Interfaz independiente del sistema gestor de
base de datos (DBMS) que se utilice.● Cada DBMS con soporte para JDBC proporciona
un driver que implementa esa interfaz.● MySQL
● http://dev.mysql.com/downloads/connector/j/
![Page 54: Bases de datos y JDBC - dalila.sip.ucm.esdalila.sip.ucm.es/~manuel/JSW1/Slides/BasesDeDatos.pdf · Bases de datos y JDBC Java y Servicios Web I Master en Ingeniería Matemática](https://reader030.vdocuments.co/reader030/viewer/2022020215/5baa47ce09d3f215608bd9ad/html5/thumbnails/54.jpg)
10. Bases de datos y JDBC29 y 30/Mayo/2012 54
Instalación
● Extraer mysql-connector-java-5.1.20-bin.jar● Desde BlueJ:
● Tools → Preferences● Pestaña Libraries● Botón Add● Seleccionar el archivo .jar
● Requiere reiniciar la JVM● Tools → Reset Java Virtual Machine
![Page 55: Bases de datos y JDBC - dalila.sip.ucm.esdalila.sip.ucm.es/~manuel/JSW1/Slides/BasesDeDatos.pdf · Bases de datos y JDBC Java y Servicios Web I Master en Ingeniería Matemática](https://reader030.vdocuments.co/reader030/viewer/2022020215/5baa47ce09d3f215608bd9ad/html5/thumbnails/55.jpg)
10. Bases de datos y JDBC29 y 30/Mayo/2012 55
URL de una base de datos
● Se utiliza para especificar a qué base de datos acceder, qué driver utilizar, y en qué servidor se encuentra el gestor de bases de datos.
jdbc:mysql://dalila.sip.ucm.es/AlumnoJSW1
Protocolo Servidor
Subprotocolo BD
jdbc:mysql://localhost/AlumnoJSW1
![Page 56: Bases de datos y JDBC - dalila.sip.ucm.esdalila.sip.ucm.es/~manuel/JSW1/Slides/BasesDeDatos.pdf · Bases de datos y JDBC Java y Servicios Web I Master en Ingeniería Matemática](https://reader030.vdocuments.co/reader030/viewer/2022020215/5baa47ce09d3f215608bd9ad/html5/thumbnails/56.jpg)
10. Bases de datos y JDBC29 y 30/Mayo/2012 56
La clase Connection
● Sus instancias representan conexiones a una base de datos.
● Se construye mediante el método estático getConnection de la clase DriverManager.● static Connection getConnection(String url, String nombre, String passwd)
![Page 57: Bases de datos y JDBC - dalila.sip.ucm.esdalila.sip.ucm.es/~manuel/JSW1/Slides/BasesDeDatos.pdf · Bases de datos y JDBC Java y Servicios Web I Master en Ingeniería Matemática](https://reader030.vdocuments.co/reader030/viewer/2022020215/5baa47ce09d3f215608bd9ad/html5/thumbnails/57.jpg)
10. Bases de datos y JDBC29 y 30/Mayo/2012 57
Ejemplopublic class ConsultaSQL {
static final String DATABASE_URL = "jdbc:mysql://dalila.sip.ucm.es/AlumnoJSW1"; static final String USER = "AlumnoJSW1"; static final String PASSWORD = "jsw1";
public static void main(String[] args) {
Connection con = null;
try {
con = DriverManager.getConnection(DATABASE_URL, USER, PASSWORD); System.out.println(“Conexión creada correctamente”);
} catch(SQLException e) { e.printStackTrace(); } finally { try { con.close(); } catch (Exception e) { e.printStackTrace(); } }
}
}
![Page 58: Bases de datos y JDBC - dalila.sip.ucm.esdalila.sip.ucm.es/~manuel/JSW1/Slides/BasesDeDatos.pdf · Bases de datos y JDBC Java y Servicios Web I Master en Ingeniería Matemática](https://reader030.vdocuments.co/reader030/viewer/2022020215/5baa47ce09d3f215608bd9ad/html5/thumbnails/58.jpg)
10. Bases de datos y JDBC29 y 30/Mayo/2012 58
La clase Statement
● Los objetos de la clase Connection pueden crear objetos de la clase Statement.● Statement createStatement()
● Los objetos Statement también han de cerrarse mediante su método close()
Statement st = null;try {
con = DriverManager.getConnection(DATABASE_URL, USER, PASSWORD); st = con.createStatement();} catch(SQLException e) { … } finally { try { st.close(); con.close(); } catch (Exception e) { e.printStackTrace(); }}
![Page 59: Bases de datos y JDBC - dalila.sip.ucm.esdalila.sip.ucm.es/~manuel/JSW1/Slides/BasesDeDatos.pdf · Bases de datos y JDBC Java y Servicios Web I Master en Ingeniería Matemática](https://reader030.vdocuments.co/reader030/viewer/2022020215/5baa47ce09d3f215608bd9ad/html5/thumbnails/59.jpg)
10. Bases de datos y JDBC29 y 30/Mayo/2012 59
Ejecutar consultas● Las consultas a la base de datos se realizan mediante
el método executeQuery de la clase Statement.● ResultSet executeQuery(String sql)
● Devuelve un objeto de la clase ResultSet, que permite iterar sobre los resultados de la consulta.● boolean next()● int getInt(int indiceCol)int getInt(String nombreCol)
● String getString(int indiceCol)String getString(String nombreCol)
● Date getDate(int indiceCol)Date getDate(String nombreCol)
● void close()
![Page 60: Bases de datos y JDBC - dalila.sip.ucm.esdalila.sip.ucm.es/~manuel/JSW1/Slides/BasesDeDatos.pdf · Bases de datos y JDBC Java y Servicios Web I Master en Ingeniería Matemática](https://reader030.vdocuments.co/reader030/viewer/2022020215/5baa47ce09d3f215608bd9ad/html5/thumbnails/60.jpg)
10. Bases de datos y JDBC29 y 30/Mayo/2012 60
Ejemplopublic class ConsultaSQL
{
static final String DATABASE_URL = "jdbc:mysql://dalila.sip.ucm.es/AlumnoJSW1"; static final String USER = "AlumnoJSW1"; static final String PASSWORD = "jsw1";
public static void main(String[] args) { Connection con = null; Statement st = null; ResultSet rs = null;
try {
con = DriverManager.getConnection(DATABASE_URL, USER, PASSWORD); st = con.createStatement(); rs = st.executeQuery( "SELECT DNI, Nombre, Apellidos, FechaNac FROM Estudiantes"); while (rs.next()) { System.out.println("DNI: " + rs.getInt(1)); System.out.println("Nombre: " + rs.getString(2)); System.out.println("Apellidos: " + rs.getString(3)); System.out.println("FechaNac: " + rs.getDate(4)); System.out.println("-----------------------------------------"); } …
![Page 61: Bases de datos y JDBC - dalila.sip.ucm.esdalila.sip.ucm.es/~manuel/JSW1/Slides/BasesDeDatos.pdf · Bases de datos y JDBC Java y Servicios Web I Master en Ingeniería Matemática](https://reader030.vdocuments.co/reader030/viewer/2022020215/5baa47ce09d3f215608bd9ad/html5/thumbnails/61.jpg)
10. Bases de datos y JDBC29 y 30/Mayo/2012 61
Ejemplo …
} catch(SQLException e) { e.printStackTrace(); } finally { try { rs.close(); st.close(); con.close(); } catch (Exception e) { e.printStackTrace(); }
}
}
}
![Page 62: Bases de datos y JDBC - dalila.sip.ucm.esdalila.sip.ucm.es/~manuel/JSW1/Slides/BasesDeDatos.pdf · Bases de datos y JDBC Java y Servicios Web I Master en Ingeniería Matemática](https://reader030.vdocuments.co/reader030/viewer/2022020215/5baa47ce09d3f215608bd9ad/html5/thumbnails/62.jpg)
10. Bases de datos y JDBC29 y 30/Mayo/2012 62
Actualizar una BD
● Para realizar modificaciones a una tabla de la base de datos (INSERT, UPDATE o DELETE), se utiliza el método executeUpdate de la clase Statement.● int executeUpdate(String sql)
![Page 63: Bases de datos y JDBC - dalila.sip.ucm.esdalila.sip.ucm.es/~manuel/JSW1/Slides/BasesDeDatos.pdf · Bases de datos y JDBC Java y Servicios Web I Master en Ingeniería Matemática](https://reader030.vdocuments.co/reader030/viewer/2022020215/5baa47ce09d3f215608bd9ad/html5/thumbnails/63.jpg)
10. Bases de datos y JDBC29 y 30/Mayo/2012 63
Ejemplotry {
con = DriverManager.getConnection(DATABASE_URL, USER, PASSWORD); st = con.createStatement(); st.executeUpdate("INSERT INTO Estudiantes (DNI, Nombre, Apellidos, FechaNac)" + "VALUES (\'99999999X\', \'Nueva\', \'Persona\', \'20100910\')");
} catch(SQLException e) { e.printStackTrace();} finally { try { st.close(); con.close(); } catch (Exception e) { e.printStackTrace();}
INSERT INTO Estudiantes (DNI, Nombre, Apellidos, FechaNac)VALUES ('99999999X', 'Nueva', 'Persona', '20100910')
![Page 64: Bases de datos y JDBC - dalila.sip.ucm.esdalila.sip.ucm.es/~manuel/JSW1/Slides/BasesDeDatos.pdf · Bases de datos y JDBC Java y Servicios Web I Master en Ingeniería Matemática](https://reader030.vdocuments.co/reader030/viewer/2022020215/5baa47ce09d3f215608bd9ad/html5/thumbnails/64.jpg)
10. Bases de datos y JDBC29 y 30/Mayo/2012 64
Consultas paramétricas
● Son consultas con marcadores (placeholders), donde se pueden colocar elementos en tiempo de ejecución.
SELECT Dni, Nombre, Apellidos, FechaNacFROM EstudiantesWHERE DNI = ?
● Se manejan con los métodos de la clase PreparedStatement
![Page 65: Bases de datos y JDBC - dalila.sip.ucm.esdalila.sip.ucm.es/~manuel/JSW1/Slides/BasesDeDatos.pdf · Bases de datos y JDBC Java y Servicios Web I Master en Ingeniería Matemática](https://reader030.vdocuments.co/reader030/viewer/2022020215/5baa47ce09d3f215608bd9ad/html5/thumbnails/65.jpg)
10. Bases de datos y JDBC29 y 30/Mayo/2012 65
EjemploConnection con = null;PreparedStatement pst = null;ResultSet rs = null;Scanner sc = new Scanner(System.in);System.out.print("Dime el número de DNI: ");int dni = sc.nextInt();
try {
con = DriverManager.getConnection(DATABASE_URL, USER, PASSWORD); pst = con.prepareStatement( "SELECT DNI, Nombre, Apellidos, FechaNac FROM Estudiantes WHERE DNI = ?" ); pst.setInt(1, dni); rs = pst.executeQuery(); if (rs.next()) {
System.out.println("DNI: " + rs.getInt(1)); System.out.println("Nombre: " + rs.getString(2)); System.out.println("Apellidos: " + rs.getString(3)); System.out.println("FechaNac: " + rs.getDate(4));
} else {
System.out.println("No se han encontrado entradas");
} } catch (…) { … }
![Page 66: Bases de datos y JDBC - dalila.sip.ucm.esdalila.sip.ucm.es/~manuel/JSW1/Slides/BasesDeDatos.pdf · Bases de datos y JDBC Java y Servicios Web I Master en Ingeniería Matemática](https://reader030.vdocuments.co/reader030/viewer/2022020215/5baa47ce09d3f215608bd9ad/html5/thumbnails/66.jpg)
10. Bases de datos y JDBC29 y 30/Mayo/2012 66
Referencias
● L. UllmanMySQL. Guía de Aprendizaje.Prentice Hall
● A. Silberschatz, H. F. Korth, S. SudarshanFundamentos de Bases de Datos (5ª Edición)McGraw Hill
● P. Deitel, H. DeitelJava. How to Program (9th Edition)Cap. 28