SlideShare una empresa de Scribd logo
1 de 11
Descargar para leer sin conexión
PROGRAMACIÓN ORIENTADA A OBJETOS
PROGRAMACIÓN ORIENTADA A OBJETOS
APLICADA A BASES DE DATOS
APLICADA A BASES DE DATOS

Por
LAURA NOUSSAN LETTRY

Operaciones sobre Bases de Datos - Parte 1

Aviso Legal
El presente libro electrónico
se distribuye bajo
Attribution-NonCommercialNoDerivs 3.0 Unported
POO APLICADA A BASES DE DATOS

ÍNDICE

Operaciones sobre Bases de Datos – PARTE 1
Introducción
1. Clases de operaciones básicas a realizar sobre Bases de Datos Relacionales.
SQL-DML.
2. Creación de la Vista de Aplicación con JFrame, JInternalFrame y Menús
avanzados en Java Swing.
3. Operaciones ABM (Altas, Bajas y Modificaciones) en un entorno de desarrollo.
SQL-DML.
4. Consultas a la Base de datos en un entorno de desarrollo. Uso del Control
Swing JTable.

1
2
2

7

FUENTES Bibliográficas Consultadas
1. Documentación sobre Swing:
http://docs.oracle.com/javase/tutorial/uiswing/index.html
2. API JDBC:
http://www.oracle.com/technetwork/java/overview-141217.html
The Java Tutorial:
http://docs.oracle.com/javase/tutorial/jdbc/index.html

BIBLIOGRAFÍA para el Alumno
1.

Contenidos de esta Unidad

2.

Programas fuentes linkeados en el site web de la materia y que son
complementarios al contenido.

3.

Demás material bibliográfico linkeado en el sitio web de la materia.

(*)

ACTIVIDADES
Unidad 3

Parte 1

Tareas
Lectura, trabajos, prácticas propuestas en el Website de la Materia.

(*): En el Website de la materia:
http://www.lnoussanl.com.ar/javabd/
POO APLICADA A BASES DE DATOS

Operaciones sobre Bases de Datos – PARTE 1
INTRODUCCIÓN
Esta parte trata de cómo crear una vista de aplicación para manipular los datos
utilizando Java y cómo se vincula esta vista con la vista de negocio.
Se aplican los conceptos vistos durante el Capítulo 2 sobre mapeo de tablas y
el API JDBC para organizar las ABM (Altas, Bajas y Modificaciones) así como
las consultas sobre las tablas.
La Vista de aplicación, por lo tanto, es la encargada de gestionar los datos que
son ingresados por el usuario o las consultas que este realice. Las clases de
nivel superior interactúan directamente con el usuario, o mejor, dicho, reciben
eventos desde el usuario y se comunican con las clases bases que mapean a
las tablas de la base de datos. En un nivel más bajo la comunicación se
establece con las clases java que se comunican con el API-JDBC para enviar las
sentencias necesarias para realizar las operaciones SQL – DML de INSERT,
UPDATE, DELETE y SELECT
POO APLICADA A BASES DE DATOS
OPERACIONES SOBRE BASES DE DATOS

TR

Y

Clases de operaciones básicas a realizar sobre Bases de Datos Relacionales.
SQL-DML.
Concepto

-L
ET

Las clases básicas de operaciones a realizar sobre bases de datos relacionales tienen que ver con el SQL
DML, es decir, con operaciones tendientes a manipular los datos almacenados. Por lo tanto es importante
repasar todo lo visto sobre SQL y en particular SQL-DML.
Las operaciones SQL-DML que se llevarán a cabo se pueden dividir en dos grupos:
a) Operaciones que nos permitirán actualizar los datos de la base de datos

b) Operaciones que nos devolverán un resultado para poder mostrar la información al usuario
mediante pantallas o informes.
Operaciones de actualización

Las operaciones que nos permitirán actualizar la base de datos son sentencias SQL –DML: INSERT,
UPDATE y DELETE.

AN

Un aspecto importante aquí es que para poder modificar o eliminar registros debemos primero encontrar
el registro a modificar o eliminar; por lo tanto la obtención del dato es fundamental y lógicamente implica
una búsqueda del registro, mediante la clave primaria utilizando una sentencia SELECT.
Operaciones con consultas e informes

Aspectos importantes a tener en cuenta

SS

Las operaciones para devolver información al usuario utilizan la sentencia SELECT simple o con
restricciones o proyecciones y pueden incluir una o más tablas. Ya se trate de una consulta por pantalla o
de un informe, siempre la manera de obtener los datos es mediante uno o más SELECT.

OU

Las sentencias SQL-DML deben enviarse desde la aplicación, es decir desde las clases de nivel superior
que gestionan los formularios ABM o los formularios de consultas.
Las clases bases y las clases CORE que se comunican con el API JDBC están en el nivel más bajo de la
aplicación y capturan las sentencias SQL DML y las envían al API para actualizar la base de datos u
obtener los datos necesarios.

aN

Creación de la Vista de Aplicación con JFrame, JInternalFrame y Menús
avanzados en Java Swing.
Ya en la Unidad 2 hemos visto la utilización de estos formularios, a la cual nos remitimos. Haciendo un
repaso de los conceptos sobre objetos vistos, la aplicación tiene que tener un solo formulario iniciador o
runtime de modo tal que la aplicación sea del tipo MDI. Ello se logra mediante la utilización de la clase
JFrame del paquete JavaSwing.

La
ur

El formulario principal (clase JFrame) tiene una estructura que permite vincular y contener el Menú
Principal y los diferentes formularios que son llamados a través del menú. Para lograr esto, el JFrame
debe tener como mínimo dos contendores: uno que contendrá el menú principal y otro que permita
vincular los diferentes formularios que son llamados a través del menú principal.
El menú principal utiliza como contenedor un objeto de la clase JMenuBar. La construcción del menú
puede apreciarse en el capítulo 2, siendo fácil e intituitiva su construcción. Utiliza la lógica jerárquica ya
que en el contendor o JMenuBar tenemos los JMenu y contenidos en los JMenu los JMenuItem. En el
capítulo 2 parte 2 está desarrollado la creación de Menús.

Pr
of.

Los formularios que permiten realizar las ABM y las consultas/informes son objetos JInternalFrame,
formularios internos, como su nombre lo indica que no cuentan con un método main o runtime y son
añadidos al JFrame mediante un panel contenedor: JDesktopPane.
Siguiendo el ejemplo didáctico de la Escuela, la imagen muestra la vista de la aplicación, separada de la
vista del negocio: las clases coloreadas en rojo corresponden a la vista de aplicación, es decir, son los
diferentes JInternalFrame que realizarán las operaciones ABM o las consultas.
Las clases coloreadas en amarillo, son las clases base, aquellas que surgen del mapeo de las tablas y
forman parte de la vista del negocio. Las clases coloreadas en color fucsia son clases que pertenecen

OPERACIONES SOBRE BASES DE DATOS– parte 1 pág. 1/8
POO APLICADA A BASES DE DATOS

SS

AN

-L
ET

TR

Y

también a la vista del negocio, pero son todavía de más bajo nivel puesto que su objetivo es comunicarse
con el API JDBC y dejar en este nivel toda la complejidad de las Excepciones.

OU

Operaciones ABM (Altas, Bajas y Modificaciones) en un entorno de desarrollo.
SQL-DML.
Hemos agregado una clase más al paquete CORE, que nos permitirá enviar los datos ingresados por el
usuario (en el nivel de la Vista de Aplicación) al API JDBC y desde allí a la base de datos.

aN

En la vista de aplicación tendremos los formularios que gestionarán las Altas, Bajas y Modificaciones, es
decir que llevarán a cabo las inserciones, modificaciones o eliminaciones de datos de la base de datos. En
realidad, en este nivel (vista de aplicación) sólo se enviarán sentencias INSERT, UPDATE y DELETE o
SELECT mediante cadenas que serán tomados por las
clases base y por las clases de manipulación de datos
del paquete CORE.

La
ur

El proyecto TOI_APP_MODELO_etapa1 desarrollado en
Netbeans, permitirá entender la estructura de la
aplicación.
La clase TOI_APP_MODELO_ETAPA_1.java es el
formulario principal, un JFrame y está ubicado en el
paquete del mismo nombre.

Pr
of.

En este paquete también tenemos las clases bases
que son aquellas que mapean a las tablas de la base
de datos: Alumno.java, Localidad.java, Materia.java y
Nota.java.
También podemos apreciar que hay otras dos clases:
consuMaterias.java y gesMaterias.java. Estas son
clases JInternalFrame que permiten llevar a cabo las
consultas y las ABM, respectivamente.
También podemos ver que existe otro paquete, el
paquete CORE y que está formado por las clases que
ya hemos visto en el capítulo 2: Conectar.java y
UsarConexion.java.
OPERACIONES SOBRE BASES DE DATOS– parte 1 pág. 2/8
POO APLICADA A BASES DE DATOS
También podemos ver que hemos agregado el controlador JDBC MySQL en las librerías.

Y

Estaría faltando crear las otras clases que permitan llevar a cabo las consultas y ABM sobre las otras
tablas con que cuenta la base de datos, es decir, que permitan operar sobre las tablas Localidades,
Alumnos y Notas.

TR

Sin embargo, el procedimiento es el mismo, cambian los atributos que tienen estas tablas y las claves
foráneas, que la tabla Materias no tiene.
En las siguientes imágenes se muestran los dos formularios de la clase JInternalFrame que gestionan las
ABM y las consultas de la tabla Materias.

-L
ET

El formulario gesMaterias.java, que como ya dijimos, pertenece a la clase JInternalFrame y en definitiva
gestiona las ABM (SQL INSERT, UPDATE, DELETE) de la Tabla Materias.

aN

OU

SS

AN

El formulario tiene habilitado el botón Agregar y el botón Buscar, estando los demás deshabilitados. Esto
se configura directamente desde la ventana de propiedades del JInternalFrame. El motivo de que los
botones Modificar y Borrar estén desactivados es que sólo se puede borrar o modificar un registro a la
vez, y para ello el usuario debe primero solicitar al DBMS el registro que quiere modificar o eliminar, lo
cual se lleva a cabo mediante el código fuente del botón Buscar.

Pr
of.

La
ur

Este es el formulario que gestiona las consultas, y que por el momento los resultados serán mostrados en
un componente nuevo: JTextArea de la librería JavaSwing.

OPERACIONES SOBRE BASES DE DATOS– parte 1 pág. 3/8
POO APLICADA A BASES DE DATOS

OPERACIÓN de ALTA (SQL INSERT)

AN

-L
ET

TR

A continuación se explica el código del botón Agregar del formulario gesMaterias.java

Y

OPERACIONES ABM

SS

El código tiene dos controles de validación importantes: 1º que el usuario esté conectado para poder
realizar la inserción y el 2º que haya completado todos los cuadros de texto necesarios (recordar que la
mayoría de los atributos de las tablas fueron diseñados como obligatorios, es decir, no se aceptan valores
nulos, salvo excepcionalmente).
Si el usuario no cumple con estos requisitos se muestra un mensaje, lógicamente. No hay que olvidar que
las aplicaciones están dirigidas a los usuarios finales, que son personas.

OU

Si se cumple con los requisitos se crea un objeto Materia que tiene como variables los datos que ha
ingresado el usuario en los cuadros de texto (recordar que hay que utilizar las funciones de conversión de
datos que hemos visto con anterioridad)
También tenemos que poder pasar estos datos que ingresó el usuario como una cadana de tipo String
con el SQL necesario (línea 172) y para ello utilizamos el objeto encapsulado Materia. ¡Esto es
sumamente importante! No pasamos los datos ingresados por el usuario en forma directa a la cadena,
sino que utilizamos el objeto Materia para encapsular la información!

aN

Finalmente en las líneas 173 y 174 utilizamos las clases del paquete CORE para que la cadena pueda ser
pasada al API-JDBC: primero se crea un objeto UsarConexion y luego se llama al método ABM de esta
clase.

OPERACIÓN de MODIFICACIÓN (SQL UPDATE)

La
ur

Para modificar los datos es necesario lógicamente que el usuario esté conectado pero también que haya
encontrado el registro que quiere modificar. Esto también es válido para eliminar un registro, de lo
contrario podríamos modificar o eliminar todos los registros de la tabla.
Así pues lo primero que debe hacer el usuario, además de estar conectado, es buscar el registro que
quiere modificar. Esto se lleva a cabo mediante el botón BUSCAR.
Como en el caso anterior, primero se valida que el usuario esté conectado (línea 221).
También se deshabilita, por precaución, el botón Agregar.

Pr
of.

La cadena de búsqueda debe ser un SELECT con restricción, para lo cual se debe utilizar la clave
primaria, como se puede apreciar en la línea 209. El usuario, para ello debe ingresar el ID de la materia
que quiere recuperar los datos.
Las líneas que siguen son invocaciones a la clase UsarConexion del paquete CORE. La primera línea
permite devolver la conexión que tiene el usuario a la base de datos.
Con el código usarLaConexion.Consultar(cadena), estamos pasando la cadena de búsqueda, es decir el
SQL necesario para obtener un registro.
Necesitamos un arreglo de tipo cadena (línea 229) para devolver todas las columnas del registro, si es
que este existe.

OPERACIONES SOBRE BASES DE DATOS– parte 1 pág. 4/8
AN

-L
ET

TR

Y

POO APLICADA A BASES DE DATOS

SS

El siguiente código if(usarLaConexion.getCantidadRegistros()>0); utiliza la clase del paquete Core para
saber la cantidad de filas que devuelve la consulta. Este método ha sido agregado en la clase
UsarConexion ya que si la consulta no devuelve registros (la cantidad de filas = 0) hay que indicárselo al
usuario.
Finalmente, si el registro existe (es decir, si la longitud del arreglo es mayor que cero) asignamos a las
variables de los cuadros de texto idmateria y nom_materia los valores devueltos por el API-JDBC.

OU

En este formulario sólo tenemos dos cuadros de texto: el ID de la materia y el nombre de ésta. Se utiliza
La sintaxis: this.idmateria.getText(datosTabla[0]); porque este idmateria es un atributo de la clase
gesMateria.java, es decir, espcíficamente es el nombre de variable del cuadro de texto o JTextField
correspondiente al ID de la materia. El método setText es un método de la clase JTextField que permite
asignar un valor al cuadro de texto, es decir, el que tiene la columna idmateria de la tabla Materia.

aN

El código this.nom_materia.setText(datosTabla[1]); lo que hace es asignarle a la variable nom_materia
del JTextField correspondiente al nombre de la materia el valor que el atributo nom_materia de la tabla
Materias tiene.
La siguiente imagen muestra el código que se ejecuta al presionar el botón MODIFICAR, ya que el usuario
ya trajo los datos del registro que quiere modificar:

Pr
of.

La
ur

El código tiene las líneas necesarias para validar que el usuario no haya dejado cuadros de texto en
blanco (esto por cómo hemos diseñado la base de datos)

OPERACIONES SOBRE BASES DE DATOS– parte 1 pág. 5/8
-L
ET

TR

Y

POO APLICADA A BASES DE DATOS

AN

En la línea 197 tenemos la creación del objeto Materia, con lo cual encapsulamos los datos ingresados por
el usuario y más adelante la cadena de modificación, es decir, la sentencia SQL UPDATE, que toma los
datos del objeto previamente creado.

SS

Las líneas que siguen son del paquete CORE, las mismas que hemos utilizado para hacer el INSERT, y a
cuya explicación nos remitimos.

OPERACIÓN de ELIMINACIÓN o BORRADO (SQL DELETE)

OU

Como en el caso de las modificaciones, para eliminar un registro de la tabla el usuario debe solicitar dicho
registro, motivo por el cual también es necesario utilizar el botón buscar.
El método que se utiliza es el mismo visto con anterioridad para las modificaciones, a las cuales nos
remitimos.

Pr
of.

La
ur

aN

La siguiente imagen muestra el código necesario para eliminar un registro de la tabla Materias.

Como en los casos anteriores, se verifica previamente que el usuario haya realizado la búsqueda y los
datos de los cuadros de texto no estén vacíos.
Se crea con posterioridad un objeto Materia que sirve para después crear la cadena que será pasada al
API para eliminar el registro (líneas 255 a 26).
OPERACIONES SOBRE BASES DE DATOS– parte 1 pág. 6/8
POO APLICADA A BASES DE DATOS
Las siguientes líneas de código son las mismas que las utilizadas para la modificación de datos.

Y

Consultas a la Base de datos en un entorno de desarrollo. Uso del Control
Swing JTable.

Recomendamos repasar estos temas que han sido abordados en la Unidad 1.

-L
ET

Por el momento se utilizará
un nuevo control Swing:
JTextArea, que permitirá ver
los datos devueltos en forma
de texto. Más adelante
abordaremos el uso del
control JTable.

TR

Las consultas a la Base de datos siempre implican la utilización de la sentencia SQL SELECT. Como
sabemos, las consultas pueden tener restricciones, proyecciones o ambas operaciones. Además las
consultas pueden incluir más de una tabla.

SS

AN

También por ahora, se
utilizará la consulta general,
es decir el SELECT sino
ninguna
restricción
ni
proyección y sobre la tabla
que estamos consultando.
Más adelante, en una etapa
2
de
la
aplicación
utilizaremos consultas más
complicadas,
que
dependerán
de
los
parámetros que ingrese el
usuario.

OU

Si es importante también hacer notar que los informes surgen de las consultas, tema que será abordado
con posterioridad en la parte 2 de este capítulo mediante el uso de un plugin.

Pr
of.

La
ur

aN

Ahora tenemos que remitirnos a la imagen del formulario consuMaterias.java, que es de la clase
JInternalFrame. Este formulario tiene un solo botón y un JTextArea. El código fuente se muestra a
continuación, y cabe aclarar que es el mismo que se ha visto en la Unidad 2

OPERACIONES SOBRE BASES DE DATOS– parte 1 pág. 7/8
POO APLICADA A BASES DE DATOS

Y

Como vimos con anterioridad para las ABM, lo primero es validar que el usuario esté conectado a la base
de datos.
Luego la variable cadena tiene asignada la setencia SQL clásica de consulta.

TR

Las siguientes líneas tienen que ver con los datos que se le deben o deberían mostrar al usuario: los
nombres de los atributos y los datos que tienen estos atributos para los diferentes registros de la tabla
Materias.
De allí que tengamos dos variables de tipo String: titColumnas[] que es un arreglo de cadenas y datos
que es una cadena que contendrá los datos contenidos en la tabla.

-L
ET

Las siguientes líneas hacen uso de la clase UsarConexion del paquete CORE.
UsarConexion consulta = new UsarConexion(Conectar.getConexion()));

Esta línea devuelve la coneixión que tiene abierta el usuario y se asigna a la variable consulta que es de
tipo UsarConexion
La línea consulta.Consultar(cadena); le pasa a la clase UsarConexion la consulta y se le indica que se
queire consultar la base de datos
Las dos líneas que siguen implican que se ejecutó la consulta y asignan tanto los nombres de las
columnas de la tabla Materias y los datos de cada uno de los registros.

AN

La línea this.areaConsulta.setText(mostrarConsulta(titColumnas,datos)); lo que hace es asignar al
JTextArea el resultado de la consulta.

Pr
of.

La
ur

aN

OU

SS

Para ello se utiliza el método mostrarConsulta, que es un método de la clase consuMaterias.java, y que
se puede apreciar en la imagen a partir de la línea 118.

OPERACIONES SOBRE BASES DE DATOS– parte 1 pág. 8/8

Más contenido relacionado

La actualidad más candente

Explicacion metodologia 3 capas y base de datos, proyecto de ejemplo jsp
Explicacion metodologia 3 capas y base de datos, proyecto de ejemplo jspExplicacion metodologia 3 capas y base de datos, proyecto de ejemplo jsp
Explicacion metodologia 3 capas y base de datos, proyecto de ejemplo jspBoris Salleg
 
Lectores 03. Otras-aplicaciones-A
Lectores 03. Otras-aplicaciones-ALectores 03. Otras-aplicaciones-A
Lectores 03. Otras-aplicaciones-Acuruena
 
UDA - Anexo generación de informes
UDA - Anexo generación de informesUDA - Anexo generación de informes
UDA - Anexo generación de informesAnder Martinez
 
Elaboración de Base de Datos para el Control y Seguimiento de Fallas
Elaboración de Base de Datos para el Control y Seguimiento de FallasElaboración de Base de Datos para el Control y Seguimiento de Fallas
Elaboración de Base de Datos para el Control y Seguimiento de FallasDjarmando Mix
 
Programa
ProgramaPrograma
Programapau
 
Programacion de base de datos - unidad 3 Programacion de base de datos
Programacion de base de datos - unidad 3 Programacion de base de datosProgramacion de base de datos - unidad 3 Programacion de base de datos
Programacion de base de datos - unidad 3 Programacion de base de datosJosé Antonio Sandoval Acosta
 
Web Services Composition Optimizer (WSCOv1.0)
Web Services Composition Optimizer (WSCOv1.0)Web Services Composition Optimizer (WSCOv1.0)
Web Services Composition Optimizer (WSCOv1.0)Juan Antonio Martin Checa
 
Diapositivas de n capas en visual net 2017
Diapositivas de n capas en visual net 2017Diapositivas de n capas en visual net 2017
Diapositivas de n capas en visual net 2017TAPIA SILVA EVELINA
 
Manual básico de bex analyzer
Manual básico de bex analyzerManual básico de bex analyzer
Manual básico de bex analyzeroliva
 

La actualidad más candente (15)

Explicacion metodologia 3 capas y base de datos, proyecto de ejemplo jsp
Explicacion metodologia 3 capas y base de datos, proyecto de ejemplo jspExplicacion metodologia 3 capas y base de datos, proyecto de ejemplo jsp
Explicacion metodologia 3 capas y base de datos, proyecto de ejemplo jsp
 
Modulos de vista
Modulos de vistaModulos de vista
Modulos de vista
 
Lectores 03. Otras-aplicaciones-A
Lectores 03. Otras-aplicaciones-ALectores 03. Otras-aplicaciones-A
Lectores 03. Otras-aplicaciones-A
 
UDA - Anexo generación de informes
UDA - Anexo generación de informesUDA - Anexo generación de informes
UDA - Anexo generación de informes
 
Elaboración de Base de Datos para el Control y Seguimiento de Fallas
Elaboración de Base de Datos para el Control y Seguimiento de FallasElaboración de Base de Datos para el Control y Seguimiento de Fallas
Elaboración de Base de Datos para el Control y Seguimiento de Fallas
 
Ejercicio practico sql
Ejercicio practico sqlEjercicio practico sql
Ejercicio practico sql
 
Programa
ProgramaPrograma
Programa
 
Programacion de base de datos - unidad 3 Programacion de base de datos
Programacion de base de datos - unidad 3 Programacion de base de datosProgramacion de base de datos - unidad 3 Programacion de base de datos
Programacion de base de datos - unidad 3 Programacion de base de datos
 
LENGUAJE TRANSACT SQL
LENGUAJE TRANSACT SQLLENGUAJE TRANSACT SQL
LENGUAJE TRANSACT SQL
 
Ciclo De Vida
Ciclo De VidaCiclo De Vida
Ciclo De Vida
 
Web Services Composition Optimizer (WSCOv1.0)
Web Services Composition Optimizer (WSCOv1.0)Web Services Composition Optimizer (WSCOv1.0)
Web Services Composition Optimizer (WSCOv1.0)
 
Diapositivas de n capas en visual net 2017
Diapositivas de n capas en visual net 2017Diapositivas de n capas en visual net 2017
Diapositivas de n capas en visual net 2017
 
Manual de exel
Manual de exelManual de exel
Manual de exel
 
Manual básico de bex analyzer
Manual básico de bex analyzerManual básico de bex analyzer
Manual básico de bex analyzer
 
Programación por Capas en PHP
Programación por Capas en PHPProgramación por Capas en PHP
Programación por Capas en PHP
 

Similar a POOABD (POO Aplicada a B Datos) - ABMC parte 1

POOABD (POO Aplicada a B Datos) - ABMC parte 1 -2020
POOABD (POO Aplicada a B Datos) - ABMC parte 1 -2020POOABD (POO Aplicada a B Datos) - ABMC parte 1 -2020
POOABD (POO Aplicada a B Datos) - ABMC parte 1 -2020Laura Noussan Lettry
 
Base de datos avanzado i
Base de datos avanzado iBase de datos avanzado i
Base de datos avanzado iGermán Naranjo
 
Base de Datos Avanzado I.pdf
Base de Datos Avanzado I.pdfBase de Datos Avanzado I.pdf
Base de Datos Avanzado I.pdfluis268260
 
Técnicas avanzadas de consultas con sql server 2014
Técnicas avanzadas de consultas con sql server 2014Técnicas avanzadas de consultas con sql server 2014
Técnicas avanzadas de consultas con sql server 2014JOSE AHIAS LOPEZ PORTILLO
 
POOABD (POO Aplicada a B Datos) - API JDBC - Parte 2
POOABD (POO Aplicada a B Datos) - API JDBC - Parte 2POOABD (POO Aplicada a B Datos) - API JDBC - Parte 2
POOABD (POO Aplicada a B Datos) - API JDBC - Parte 2Laura Noussan Lettry
 
11 Guía_Fundamentos de Base de Datos.docx
11 Guía_Fundamentos de Base de Datos.docx11 Guía_Fundamentos de Base de Datos.docx
11 Guía_Fundamentos de Base de Datos.docxLeydyVeronicaDelgado
 
Curso de programacin de macros en excel 2010
Curso de programacin de macros en excel 2010Curso de programacin de macros en excel 2010
Curso de programacin de macros en excel 2010Ricardo Jaramillo
 
Programación en excel
Programación en excelProgramación en excel
Programación en excelfelipe urtubia
 
Experto en curso de programacion de macros en excel
Experto en curso de programacion de macros en excel Experto en curso de programacion de macros en excel
Experto en curso de programacion de macros en excel Alejandro Centeno
 
Tutorialbasededatosennetbeansswingsinasistente 090901170542-phpapp02
Tutorialbasededatosennetbeansswingsinasistente 090901170542-phpapp02Tutorialbasededatosennetbeansswingsinasistente 090901170542-phpapp02
Tutorialbasededatosennetbeansswingsinasistente 090901170542-phpapp024489756
 
Tutorial Base De Datos En Net Beans Swing Sin Asistente
Tutorial Base De Datos En Net Beans Swing Sin AsistenteTutorial Base De Datos En Net Beans Swing Sin Asistente
Tutorial Base De Datos En Net Beans Swing Sin AsistenteCambiar una estructura
 

Similar a POOABD (POO Aplicada a B Datos) - ABMC parte 1 (20)

POOABD (POO Aplicada a B Datos) - ABMC parte 1 -2020
POOABD (POO Aplicada a B Datos) - ABMC parte 1 -2020POOABD (POO Aplicada a B Datos) - ABMC parte 1 -2020
POOABD (POO Aplicada a B Datos) - ABMC parte 1 -2020
 
Base de datos avanzado i
Base de datos avanzado iBase de datos avanzado i
Base de datos avanzado i
 
Base de datos avanzado i
Base de datos avanzado iBase de datos avanzado i
Base de datos avanzado i
 
Base de Datos Avanzado I.pdf
Base de Datos Avanzado I.pdfBase de Datos Avanzado I.pdf
Base de Datos Avanzado I.pdf
 
Base de Datos Avanzado I.pdf
Base de Datos Avanzado I.pdfBase de Datos Avanzado I.pdf
Base de Datos Avanzado I.pdf
 
Técnicas avanzadas de consultas con sql server 2014
Técnicas avanzadas de consultas con sql server 2014Técnicas avanzadas de consultas con sql server 2014
Técnicas avanzadas de consultas con sql server 2014
 
POOABD (POO Aplicada a B Datos) - API JDBC - Parte 2
POOABD (POO Aplicada a B Datos) - API JDBC - Parte 2POOABD (POO Aplicada a B Datos) - API JDBC - Parte 2
POOABD (POO Aplicada a B Datos) - API JDBC - Parte 2
 
BASES DE DATOS
BASES DE DATOSBASES DE DATOS
BASES DE DATOS
 
Arquitectura de sap
Arquitectura de sapArquitectura de sap
Arquitectura de sap
 
Curso_de_programacic3b3n_de_macros_en_ex.pdf
Curso_de_programacic3b3n_de_macros_en_ex.pdfCurso_de_programacic3b3n_de_macros_en_ex.pdf
Curso_de_programacic3b3n_de_macros_en_ex.pdf
 
11 Guía_Fundamentos de Base de Datos.docx
11 Guía_Fundamentos de Base de Datos.docx11 Guía_Fundamentos de Base de Datos.docx
11 Guía_Fundamentos de Base de Datos.docx
 
SISTEMAS
SISTEMASSISTEMAS
SISTEMAS
 
2. niveles de arquitectura
2. niveles de arquitectura2. niveles de arquitectura
2. niveles de arquitectura
 
Curso de programacin de macros en excel 2010
Curso de programacin de macros en excel 2010Curso de programacin de macros en excel 2010
Curso de programacin de macros en excel 2010
 
Programación en excel
Programación en excelProgramación en excel
Programación en excel
 
Experto en curso de programacion de macros en excel
Experto en curso de programacion de macros en excel Experto en curso de programacion de macros en excel
Experto en curso de programacion de macros en excel
 
Programacion de-macros-en-excel
Programacion de-macros-en-excelProgramacion de-macros-en-excel
Programacion de-macros-en-excel
 
Tutorialbasededatosennetbeansswingsinasistente 090901170542-phpapp02
Tutorialbasededatosennetbeansswingsinasistente 090901170542-phpapp02Tutorialbasededatosennetbeansswingsinasistente 090901170542-phpapp02
Tutorialbasededatosennetbeansswingsinasistente 090901170542-phpapp02
 
04 -bases_de_datos_-_arquitectura_de_tres_niveles
04  -bases_de_datos_-_arquitectura_de_tres_niveles04  -bases_de_datos_-_arquitectura_de_tres_niveles
04 -bases_de_datos_-_arquitectura_de_tres_niveles
 
Tutorial Base De Datos En Net Beans Swing Sin Asistente
Tutorial Base De Datos En Net Beans Swing Sin AsistenteTutorial Base De Datos En Net Beans Swing Sin Asistente
Tutorial Base De Datos En Net Beans Swing Sin Asistente
 

Más de Laura Noussan Lettry

POOABD (POO Aplicada a B Datos) - RDBMS parte 2 -2020
POOABD (POO Aplicada a B Datos) - RDBMS parte 2 -2020POOABD (POO Aplicada a B Datos) - RDBMS parte 2 -2020
POOABD (POO Aplicada a B Datos) - RDBMS parte 2 -2020Laura Noussan Lettry
 
POOABD (POO Aplicada a B Datos) - RDBMS parte 1 -2020
POOABD (POO Aplicada a B Datos) - RDBMS parte 1 -2020POOABD (POO Aplicada a B Datos) - RDBMS parte 1 -2020
POOABD (POO Aplicada a B Datos) - RDBMS parte 1 -2020Laura Noussan Lettry
 
POOABD (POO Aplicada a B Datos) - API JDBC parte 1 -2020
POOABD (POO Aplicada a B Datos) - API JDBC parte 1 -2020POOABD (POO Aplicada a B Datos) - API JDBC parte 1 -2020
POOABD (POO Aplicada a B Datos) - API JDBC parte 1 -2020Laura Noussan Lettry
 
Conexiones JDBC con MySQL y SQL Server Express - Casos Prácticos con NetBeans...
Conexiones JDBC con MySQL y SQL Server Express - Casos Prácticos con NetBeans...Conexiones JDBC con MySQL y SQL Server Express - Casos Prácticos con NetBeans...
Conexiones JDBC con MySQL y SQL Server Express - Casos Prácticos con NetBeans...Laura Noussan Lettry
 
POOABD (POO Aplicada a B Datos) - RDBMS parte 1
POOABD (POO Aplicada a B Datos) - RDBMS parte 1POOABD (POO Aplicada a B Datos) - RDBMS parte 1
POOABD (POO Aplicada a B Datos) - RDBMS parte 1Laura Noussan Lettry
 
POOABD (POO Aplicada a B Datos) - API JDBC - Parte 1
POOABD (POO Aplicada a B Datos) - API JDBC - Parte 1POOABD (POO Aplicada a B Datos) - API JDBC - Parte 1
POOABD (POO Aplicada a B Datos) - API JDBC - Parte 1Laura Noussan Lettry
 
POOABD (POO Aplicada a B Datos) - RDBMS parte 2
POOABD (POO Aplicada a B Datos) - RDBMS parte 2POOABD (POO Aplicada a B Datos) - RDBMS parte 2
POOABD (POO Aplicada a B Datos) - RDBMS parte 2Laura Noussan Lettry
 

Más de Laura Noussan Lettry (7)

POOABD (POO Aplicada a B Datos) - RDBMS parte 2 -2020
POOABD (POO Aplicada a B Datos) - RDBMS parte 2 -2020POOABD (POO Aplicada a B Datos) - RDBMS parte 2 -2020
POOABD (POO Aplicada a B Datos) - RDBMS parte 2 -2020
 
POOABD (POO Aplicada a B Datos) - RDBMS parte 1 -2020
POOABD (POO Aplicada a B Datos) - RDBMS parte 1 -2020POOABD (POO Aplicada a B Datos) - RDBMS parte 1 -2020
POOABD (POO Aplicada a B Datos) - RDBMS parte 1 -2020
 
POOABD (POO Aplicada a B Datos) - API JDBC parte 1 -2020
POOABD (POO Aplicada a B Datos) - API JDBC parte 1 -2020POOABD (POO Aplicada a B Datos) - API JDBC parte 1 -2020
POOABD (POO Aplicada a B Datos) - API JDBC parte 1 -2020
 
Conexiones JDBC con MySQL y SQL Server Express - Casos Prácticos con NetBeans...
Conexiones JDBC con MySQL y SQL Server Express - Casos Prácticos con NetBeans...Conexiones JDBC con MySQL y SQL Server Express - Casos Prácticos con NetBeans...
Conexiones JDBC con MySQL y SQL Server Express - Casos Prácticos con NetBeans...
 
POOABD (POO Aplicada a B Datos) - RDBMS parte 1
POOABD (POO Aplicada a B Datos) - RDBMS parte 1POOABD (POO Aplicada a B Datos) - RDBMS parte 1
POOABD (POO Aplicada a B Datos) - RDBMS parte 1
 
POOABD (POO Aplicada a B Datos) - API JDBC - Parte 1
POOABD (POO Aplicada a B Datos) - API JDBC - Parte 1POOABD (POO Aplicada a B Datos) - API JDBC - Parte 1
POOABD (POO Aplicada a B Datos) - API JDBC - Parte 1
 
POOABD (POO Aplicada a B Datos) - RDBMS parte 2
POOABD (POO Aplicada a B Datos) - RDBMS parte 2POOABD (POO Aplicada a B Datos) - RDBMS parte 2
POOABD (POO Aplicada a B Datos) - RDBMS parte 2
 

Último

International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)GDGSucre
 
Desarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdfDesarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdfJulian Lamprea
 
9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudiante9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudianteAndreaHuertas24
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricKeyla Dolores Méndez
 
guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan JosephBRAYANJOSEPHPEREZGOM
 
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE  DE TECNOLOGIA E INFORMATICA PRIMARIACLASE  DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIAWilbisVega
 
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...silviayucra2
 
Presentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxPresentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxLolaBunny11
 
Trabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíaTrabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíassuserf18419
 
Redes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfRedes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfsoporteupcology
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveFagnerLisboa3
 
pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITMaricarmen Sánchez Ruiz
 
Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx241521559
 

Último (13)

International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)
 
Desarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdfDesarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdf
 
9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudiante9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudiante
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
 
guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Joseph
 
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE  DE TECNOLOGIA E INFORMATICA PRIMARIACLASE  DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
 
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
 
Presentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxPresentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptx
 
Trabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíaTrabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnología
 
Redes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfRedes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdf
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial Uninove
 
pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNIT
 
Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx
 

POOABD (POO Aplicada a B Datos) - ABMC parte 1

  • 1. PROGRAMACIÓN ORIENTADA A OBJETOS PROGRAMACIÓN ORIENTADA A OBJETOS APLICADA A BASES DE DATOS APLICADA A BASES DE DATOS Por LAURA NOUSSAN LETTRY Operaciones sobre Bases de Datos - Parte 1 Aviso Legal El presente libro electrónico se distribuye bajo Attribution-NonCommercialNoDerivs 3.0 Unported
  • 2. POO APLICADA A BASES DE DATOS ÍNDICE Operaciones sobre Bases de Datos – PARTE 1 Introducción 1. Clases de operaciones básicas a realizar sobre Bases de Datos Relacionales. SQL-DML. 2. Creación de la Vista de Aplicación con JFrame, JInternalFrame y Menús avanzados en Java Swing. 3. Operaciones ABM (Altas, Bajas y Modificaciones) en un entorno de desarrollo. SQL-DML. 4. Consultas a la Base de datos en un entorno de desarrollo. Uso del Control Swing JTable. 1 2 2 7 FUENTES Bibliográficas Consultadas 1. Documentación sobre Swing: http://docs.oracle.com/javase/tutorial/uiswing/index.html 2. API JDBC: http://www.oracle.com/technetwork/java/overview-141217.html The Java Tutorial: http://docs.oracle.com/javase/tutorial/jdbc/index.html BIBLIOGRAFÍA para el Alumno 1. Contenidos de esta Unidad 2. Programas fuentes linkeados en el site web de la materia y que son complementarios al contenido. 3. Demás material bibliográfico linkeado en el sitio web de la materia. (*) ACTIVIDADES Unidad 3 Parte 1 Tareas Lectura, trabajos, prácticas propuestas en el Website de la Materia. (*): En el Website de la materia: http://www.lnoussanl.com.ar/javabd/
  • 3. POO APLICADA A BASES DE DATOS Operaciones sobre Bases de Datos – PARTE 1 INTRODUCCIÓN Esta parte trata de cómo crear una vista de aplicación para manipular los datos utilizando Java y cómo se vincula esta vista con la vista de negocio. Se aplican los conceptos vistos durante el Capítulo 2 sobre mapeo de tablas y el API JDBC para organizar las ABM (Altas, Bajas y Modificaciones) así como las consultas sobre las tablas. La Vista de aplicación, por lo tanto, es la encargada de gestionar los datos que son ingresados por el usuario o las consultas que este realice. Las clases de nivel superior interactúan directamente con el usuario, o mejor, dicho, reciben eventos desde el usuario y se comunican con las clases bases que mapean a las tablas de la base de datos. En un nivel más bajo la comunicación se establece con las clases java que se comunican con el API-JDBC para enviar las sentencias necesarias para realizar las operaciones SQL – DML de INSERT, UPDATE, DELETE y SELECT
  • 4. POO APLICADA A BASES DE DATOS OPERACIONES SOBRE BASES DE DATOS TR Y Clases de operaciones básicas a realizar sobre Bases de Datos Relacionales. SQL-DML. Concepto -L ET Las clases básicas de operaciones a realizar sobre bases de datos relacionales tienen que ver con el SQL DML, es decir, con operaciones tendientes a manipular los datos almacenados. Por lo tanto es importante repasar todo lo visto sobre SQL y en particular SQL-DML. Las operaciones SQL-DML que se llevarán a cabo se pueden dividir en dos grupos: a) Operaciones que nos permitirán actualizar los datos de la base de datos b) Operaciones que nos devolverán un resultado para poder mostrar la información al usuario mediante pantallas o informes. Operaciones de actualización Las operaciones que nos permitirán actualizar la base de datos son sentencias SQL –DML: INSERT, UPDATE y DELETE. AN Un aspecto importante aquí es que para poder modificar o eliminar registros debemos primero encontrar el registro a modificar o eliminar; por lo tanto la obtención del dato es fundamental y lógicamente implica una búsqueda del registro, mediante la clave primaria utilizando una sentencia SELECT. Operaciones con consultas e informes Aspectos importantes a tener en cuenta SS Las operaciones para devolver información al usuario utilizan la sentencia SELECT simple o con restricciones o proyecciones y pueden incluir una o más tablas. Ya se trate de una consulta por pantalla o de un informe, siempre la manera de obtener los datos es mediante uno o más SELECT. OU Las sentencias SQL-DML deben enviarse desde la aplicación, es decir desde las clases de nivel superior que gestionan los formularios ABM o los formularios de consultas. Las clases bases y las clases CORE que se comunican con el API JDBC están en el nivel más bajo de la aplicación y capturan las sentencias SQL DML y las envían al API para actualizar la base de datos u obtener los datos necesarios. aN Creación de la Vista de Aplicación con JFrame, JInternalFrame y Menús avanzados en Java Swing. Ya en la Unidad 2 hemos visto la utilización de estos formularios, a la cual nos remitimos. Haciendo un repaso de los conceptos sobre objetos vistos, la aplicación tiene que tener un solo formulario iniciador o runtime de modo tal que la aplicación sea del tipo MDI. Ello se logra mediante la utilización de la clase JFrame del paquete JavaSwing. La ur El formulario principal (clase JFrame) tiene una estructura que permite vincular y contener el Menú Principal y los diferentes formularios que son llamados a través del menú. Para lograr esto, el JFrame debe tener como mínimo dos contendores: uno que contendrá el menú principal y otro que permita vincular los diferentes formularios que son llamados a través del menú principal. El menú principal utiliza como contenedor un objeto de la clase JMenuBar. La construcción del menú puede apreciarse en el capítulo 2, siendo fácil e intituitiva su construcción. Utiliza la lógica jerárquica ya que en el contendor o JMenuBar tenemos los JMenu y contenidos en los JMenu los JMenuItem. En el capítulo 2 parte 2 está desarrollado la creación de Menús. Pr of. Los formularios que permiten realizar las ABM y las consultas/informes son objetos JInternalFrame, formularios internos, como su nombre lo indica que no cuentan con un método main o runtime y son añadidos al JFrame mediante un panel contenedor: JDesktopPane. Siguiendo el ejemplo didáctico de la Escuela, la imagen muestra la vista de la aplicación, separada de la vista del negocio: las clases coloreadas en rojo corresponden a la vista de aplicación, es decir, son los diferentes JInternalFrame que realizarán las operaciones ABM o las consultas. Las clases coloreadas en amarillo, son las clases base, aquellas que surgen del mapeo de las tablas y forman parte de la vista del negocio. Las clases coloreadas en color fucsia son clases que pertenecen OPERACIONES SOBRE BASES DE DATOS– parte 1 pág. 1/8
  • 5. POO APLICADA A BASES DE DATOS SS AN -L ET TR Y también a la vista del negocio, pero son todavía de más bajo nivel puesto que su objetivo es comunicarse con el API JDBC y dejar en este nivel toda la complejidad de las Excepciones. OU Operaciones ABM (Altas, Bajas y Modificaciones) en un entorno de desarrollo. SQL-DML. Hemos agregado una clase más al paquete CORE, que nos permitirá enviar los datos ingresados por el usuario (en el nivel de la Vista de Aplicación) al API JDBC y desde allí a la base de datos. aN En la vista de aplicación tendremos los formularios que gestionarán las Altas, Bajas y Modificaciones, es decir que llevarán a cabo las inserciones, modificaciones o eliminaciones de datos de la base de datos. En realidad, en este nivel (vista de aplicación) sólo se enviarán sentencias INSERT, UPDATE y DELETE o SELECT mediante cadenas que serán tomados por las clases base y por las clases de manipulación de datos del paquete CORE. La ur El proyecto TOI_APP_MODELO_etapa1 desarrollado en Netbeans, permitirá entender la estructura de la aplicación. La clase TOI_APP_MODELO_ETAPA_1.java es el formulario principal, un JFrame y está ubicado en el paquete del mismo nombre. Pr of. En este paquete también tenemos las clases bases que son aquellas que mapean a las tablas de la base de datos: Alumno.java, Localidad.java, Materia.java y Nota.java. También podemos apreciar que hay otras dos clases: consuMaterias.java y gesMaterias.java. Estas son clases JInternalFrame que permiten llevar a cabo las consultas y las ABM, respectivamente. También podemos ver que existe otro paquete, el paquete CORE y que está formado por las clases que ya hemos visto en el capítulo 2: Conectar.java y UsarConexion.java. OPERACIONES SOBRE BASES DE DATOS– parte 1 pág. 2/8
  • 6. POO APLICADA A BASES DE DATOS También podemos ver que hemos agregado el controlador JDBC MySQL en las librerías. Y Estaría faltando crear las otras clases que permitan llevar a cabo las consultas y ABM sobre las otras tablas con que cuenta la base de datos, es decir, que permitan operar sobre las tablas Localidades, Alumnos y Notas. TR Sin embargo, el procedimiento es el mismo, cambian los atributos que tienen estas tablas y las claves foráneas, que la tabla Materias no tiene. En las siguientes imágenes se muestran los dos formularios de la clase JInternalFrame que gestionan las ABM y las consultas de la tabla Materias. -L ET El formulario gesMaterias.java, que como ya dijimos, pertenece a la clase JInternalFrame y en definitiva gestiona las ABM (SQL INSERT, UPDATE, DELETE) de la Tabla Materias. aN OU SS AN El formulario tiene habilitado el botón Agregar y el botón Buscar, estando los demás deshabilitados. Esto se configura directamente desde la ventana de propiedades del JInternalFrame. El motivo de que los botones Modificar y Borrar estén desactivados es que sólo se puede borrar o modificar un registro a la vez, y para ello el usuario debe primero solicitar al DBMS el registro que quiere modificar o eliminar, lo cual se lleva a cabo mediante el código fuente del botón Buscar. Pr of. La ur Este es el formulario que gestiona las consultas, y que por el momento los resultados serán mostrados en un componente nuevo: JTextArea de la librería JavaSwing. OPERACIONES SOBRE BASES DE DATOS– parte 1 pág. 3/8
  • 7. POO APLICADA A BASES DE DATOS OPERACIÓN de ALTA (SQL INSERT) AN -L ET TR A continuación se explica el código del botón Agregar del formulario gesMaterias.java Y OPERACIONES ABM SS El código tiene dos controles de validación importantes: 1º que el usuario esté conectado para poder realizar la inserción y el 2º que haya completado todos los cuadros de texto necesarios (recordar que la mayoría de los atributos de las tablas fueron diseñados como obligatorios, es decir, no se aceptan valores nulos, salvo excepcionalmente). Si el usuario no cumple con estos requisitos se muestra un mensaje, lógicamente. No hay que olvidar que las aplicaciones están dirigidas a los usuarios finales, que son personas. OU Si se cumple con los requisitos se crea un objeto Materia que tiene como variables los datos que ha ingresado el usuario en los cuadros de texto (recordar que hay que utilizar las funciones de conversión de datos que hemos visto con anterioridad) También tenemos que poder pasar estos datos que ingresó el usuario como una cadana de tipo String con el SQL necesario (línea 172) y para ello utilizamos el objeto encapsulado Materia. ¡Esto es sumamente importante! No pasamos los datos ingresados por el usuario en forma directa a la cadena, sino que utilizamos el objeto Materia para encapsular la información! aN Finalmente en las líneas 173 y 174 utilizamos las clases del paquete CORE para que la cadena pueda ser pasada al API-JDBC: primero se crea un objeto UsarConexion y luego se llama al método ABM de esta clase. OPERACIÓN de MODIFICACIÓN (SQL UPDATE) La ur Para modificar los datos es necesario lógicamente que el usuario esté conectado pero también que haya encontrado el registro que quiere modificar. Esto también es válido para eliminar un registro, de lo contrario podríamos modificar o eliminar todos los registros de la tabla. Así pues lo primero que debe hacer el usuario, además de estar conectado, es buscar el registro que quiere modificar. Esto se lleva a cabo mediante el botón BUSCAR. Como en el caso anterior, primero se valida que el usuario esté conectado (línea 221). También se deshabilita, por precaución, el botón Agregar. Pr of. La cadena de búsqueda debe ser un SELECT con restricción, para lo cual se debe utilizar la clave primaria, como se puede apreciar en la línea 209. El usuario, para ello debe ingresar el ID de la materia que quiere recuperar los datos. Las líneas que siguen son invocaciones a la clase UsarConexion del paquete CORE. La primera línea permite devolver la conexión que tiene el usuario a la base de datos. Con el código usarLaConexion.Consultar(cadena), estamos pasando la cadena de búsqueda, es decir el SQL necesario para obtener un registro. Necesitamos un arreglo de tipo cadena (línea 229) para devolver todas las columnas del registro, si es que este existe. OPERACIONES SOBRE BASES DE DATOS– parte 1 pág. 4/8
  • 8. AN -L ET TR Y POO APLICADA A BASES DE DATOS SS El siguiente código if(usarLaConexion.getCantidadRegistros()>0); utiliza la clase del paquete Core para saber la cantidad de filas que devuelve la consulta. Este método ha sido agregado en la clase UsarConexion ya que si la consulta no devuelve registros (la cantidad de filas = 0) hay que indicárselo al usuario. Finalmente, si el registro existe (es decir, si la longitud del arreglo es mayor que cero) asignamos a las variables de los cuadros de texto idmateria y nom_materia los valores devueltos por el API-JDBC. OU En este formulario sólo tenemos dos cuadros de texto: el ID de la materia y el nombre de ésta. Se utiliza La sintaxis: this.idmateria.getText(datosTabla[0]); porque este idmateria es un atributo de la clase gesMateria.java, es decir, espcíficamente es el nombre de variable del cuadro de texto o JTextField correspondiente al ID de la materia. El método setText es un método de la clase JTextField que permite asignar un valor al cuadro de texto, es decir, el que tiene la columna idmateria de la tabla Materia. aN El código this.nom_materia.setText(datosTabla[1]); lo que hace es asignarle a la variable nom_materia del JTextField correspondiente al nombre de la materia el valor que el atributo nom_materia de la tabla Materias tiene. La siguiente imagen muestra el código que se ejecuta al presionar el botón MODIFICAR, ya que el usuario ya trajo los datos del registro que quiere modificar: Pr of. La ur El código tiene las líneas necesarias para validar que el usuario no haya dejado cuadros de texto en blanco (esto por cómo hemos diseñado la base de datos) OPERACIONES SOBRE BASES DE DATOS– parte 1 pág. 5/8
  • 9. -L ET TR Y POO APLICADA A BASES DE DATOS AN En la línea 197 tenemos la creación del objeto Materia, con lo cual encapsulamos los datos ingresados por el usuario y más adelante la cadena de modificación, es decir, la sentencia SQL UPDATE, que toma los datos del objeto previamente creado. SS Las líneas que siguen son del paquete CORE, las mismas que hemos utilizado para hacer el INSERT, y a cuya explicación nos remitimos. OPERACIÓN de ELIMINACIÓN o BORRADO (SQL DELETE) OU Como en el caso de las modificaciones, para eliminar un registro de la tabla el usuario debe solicitar dicho registro, motivo por el cual también es necesario utilizar el botón buscar. El método que se utiliza es el mismo visto con anterioridad para las modificaciones, a las cuales nos remitimos. Pr of. La ur aN La siguiente imagen muestra el código necesario para eliminar un registro de la tabla Materias. Como en los casos anteriores, se verifica previamente que el usuario haya realizado la búsqueda y los datos de los cuadros de texto no estén vacíos. Se crea con posterioridad un objeto Materia que sirve para después crear la cadena que será pasada al API para eliminar el registro (líneas 255 a 26). OPERACIONES SOBRE BASES DE DATOS– parte 1 pág. 6/8
  • 10. POO APLICADA A BASES DE DATOS Las siguientes líneas de código son las mismas que las utilizadas para la modificación de datos. Y Consultas a la Base de datos en un entorno de desarrollo. Uso del Control Swing JTable. Recomendamos repasar estos temas que han sido abordados en la Unidad 1. -L ET Por el momento se utilizará un nuevo control Swing: JTextArea, que permitirá ver los datos devueltos en forma de texto. Más adelante abordaremos el uso del control JTable. TR Las consultas a la Base de datos siempre implican la utilización de la sentencia SQL SELECT. Como sabemos, las consultas pueden tener restricciones, proyecciones o ambas operaciones. Además las consultas pueden incluir más de una tabla. SS AN También por ahora, se utilizará la consulta general, es decir el SELECT sino ninguna restricción ni proyección y sobre la tabla que estamos consultando. Más adelante, en una etapa 2 de la aplicación utilizaremos consultas más complicadas, que dependerán de los parámetros que ingrese el usuario. OU Si es importante también hacer notar que los informes surgen de las consultas, tema que será abordado con posterioridad en la parte 2 de este capítulo mediante el uso de un plugin. Pr of. La ur aN Ahora tenemos que remitirnos a la imagen del formulario consuMaterias.java, que es de la clase JInternalFrame. Este formulario tiene un solo botón y un JTextArea. El código fuente se muestra a continuación, y cabe aclarar que es el mismo que se ha visto en la Unidad 2 OPERACIONES SOBRE BASES DE DATOS– parte 1 pág. 7/8
  • 11. POO APLICADA A BASES DE DATOS Y Como vimos con anterioridad para las ABM, lo primero es validar que el usuario esté conectado a la base de datos. Luego la variable cadena tiene asignada la setencia SQL clásica de consulta. TR Las siguientes líneas tienen que ver con los datos que se le deben o deberían mostrar al usuario: los nombres de los atributos y los datos que tienen estos atributos para los diferentes registros de la tabla Materias. De allí que tengamos dos variables de tipo String: titColumnas[] que es un arreglo de cadenas y datos que es una cadena que contendrá los datos contenidos en la tabla. -L ET Las siguientes líneas hacen uso de la clase UsarConexion del paquete CORE. UsarConexion consulta = new UsarConexion(Conectar.getConexion())); Esta línea devuelve la coneixión que tiene abierta el usuario y se asigna a la variable consulta que es de tipo UsarConexion La línea consulta.Consultar(cadena); le pasa a la clase UsarConexion la consulta y se le indica que se queire consultar la base de datos Las dos líneas que siguen implican que se ejecutó la consulta y asignan tanto los nombres de las columnas de la tabla Materias y los datos de cada uno de los registros. AN La línea this.areaConsulta.setText(mostrarConsulta(titColumnas,datos)); lo que hace es asignar al JTextArea el resultado de la consulta. Pr of. La ur aN OU SS Para ello se utiliza el método mostrarConsulta, que es un método de la clase consuMaterias.java, y que se puede apreciar en la imagen a partir de la línea 118. OPERACIONES SOBRE BASES DE DATOS– parte 1 pág. 8/8