Está en la página 1de 14

Universidad Catlica Los ngeles de Chimbote Programacin Visual II

PROCEDIMIENTOS ALMACENADOS EN CONSULTA DE


DATOS

Procedimientos almacenados usando CallableStatement


Los procedimientos almacenados diseados para consulta de datos deben ser
ejecutados

partir

de

un

objeto

instanciado

creado

partir

de

CallableStatement. Este interfaz permitir hacer uso de parmetros de entrada y


de salida.
Ing. Martn Salcedo Quiones

Pgina 1

Universidad Catlica Los ngeles de Chimbote Programacin Visual II


Vamos a construir una consulta que permita visualizar la carga acadmica de un
docente seleccionado en un semestre indicado y tambin la carga acadmica de
una escuela profesional en un semestre dado.
1. Construyamos la siguiente vista para visualizar los datos de la carga
acadmica.

Para la vista v_carga_academica se hace uso de las tablas: carga_academica,


plan_estudios, escuela, curso, docente y sede.
2. Construyamos los siguientes procedimientos almacenados:

Este procedimiento almacenado permitir obtener la carga acadmica de un


docente en un semestre indicado para lo cual se hace uso de la vista creada
previamente. En la clase Acceso construye el mtodo BuscaCargaAcademica

Ing. Martn Salcedo Quiones

Pgina 2

Universidad Catlica Los ngeles de Chimbote Programacin Visual II


Este mtodo permitir ejecutar el procedimiento almacenado, para ello es
necesario crear un objeto de la interfaz CallableStatement. Con el mtodo
setString indicamos el orden de los parmetros de entrada del procedimiento y
los valores para cada parmetro. El mtodo executeQuery() hace la ejecucin
del procedimiento almacenado cuyo resultado se almacena en el objeto rs del
tipo ResultSet.

El procedimiento almacenado sp_cantidad_horas es para obtener la cantidad


de horas asignadas a un docente en un semestre indicado. En la clase
Acceso agrega el mtodo BuscaHorasAsignadas() para hacer uso del
procedimiento almacenado sp_cantidad_horas.

A continuacin el procedimiento almacenado para visualizar la carga


acadmica de una escuela profesional de un semestre indicado.

Para ste procedimiento almacenado en la clase Acceso se crea el mtodo


BuscaCargaEscuela()

Ing. Martn Salcedo Quiones

Pgina 3

Universidad Catlica Los ngeles de Chimbote Programacin Visual II

3. El objeto JTabbedPanel permite usar un diseo fcil para interactuar con varias
pestaas (llamadas tambin persianas, pginas, etc.). Vamos ir conociendo o
recordando el uso de este objeto que lo utilizaremos en el diseo de la
aplicacin para visualizar la carga acadmica. Colocamos un objeto
JTabbedPanel en el formulario frmConsCargaAcademica.

Luego selecciona el objeto JTabbedPanel y dando clic botn derecho del


mouse se agrega un objeto JPanel que permitir crear la primera pestaa.

Ing. Martn Salcedo Quiones

Pgina 4

Universidad Catlica Los ngeles de Chimbote Programacin Visual II

Se dibujar la primera persiana o pestaa:

Ing. Martn Salcedo Quiones

Pgina 5

Universidad Catlica Los ngeles de Chimbote Programacin Visual II


4. En la vista de propiedad JPanel1 (tab1), en la propiedad Tab Title (Ttulo de la
Pestaa) coloca la expresin: Carga Acadmica por Docente.

5. Luego de cerrar la ventana anterior, disea la pestaa de la siguiente manera:

Ing. Martn Salcedo Quiones

Pgina 6

Universidad Catlica Los ngeles de Chimbote Programacin Visual II


cboDocente
txtSemestre
btnConsultar
tablaCargaDocente
btnCerrar
lblHorasAsig

6. Para agregar una segunda pestaa se debe agregar otro JPanel.

En la propiedad Tab Title (Ttulo de la Pestaa) coloca la expresin: Carga


Acadmica por Escuela.

Ing. Martn Salcedo Quiones

Pgina 7

Universidad Catlica Los ngeles de Chimbote Programacin Visual II

7. Luego de cerrar la ventana anterior, disea la segunda pestaa de la siguiente


forma:

cboEscuela
Ing. Martn Salcedo Quiones

Pgina 8

Universidad Catlica Los ngeles de Chimbote Programacin Visual II


txtSemes
btnMostrar
tablaCargaEscuela
btnSalir

8. A

continuacin

colocar

la

siguiente

programacin

en

el

formulario

frmConsCargaAcademica.

Importamos los paquetes java.sql (para acceder a base de datos), javax.swing


(para el uso de los controles visuales), javax.swing.table para el manejo de las
clases del paquete table y el paquete universidad que contiene a la clase
Acceso con lo cual podremos hacer uso de todos los mtodos que tenga.

Se define las variables objeto conn, st, rs del tipo Connection, Statement y
ResultSet inicializando como null. Las variables objeto dtmCargaDoc y
dtmCargaEsc es del tipo DefaultTableModel para el manejo de los objetos
Jtable tablaCargaDocente y tablaCargaEscuela. Se crea una matriz para el
manejo de los apellidos y nombres de los docentes.
Agregamos en la clase Acceso el mtodo EnlDoc para obtener los apellidos y
nombres de los docentes.
Ing. Martn Salcedo Quiones

Pgina 9

Universidad Catlica Los ngeles de Chimbote Programacin Visual II

En el mtodo constructor se escribe:

Con los vectores tituloCargaDoc y tituloCargaEsc se define los ttulos de


cada objeto JTable. Los modelos de datos dtmCargaDoc y dtmCargaEsc se
le pasa los ttulos con el mtodo setColumnIdentifiers() y luego se les vincula
con los objetos tablaCargaDocente y tablaCargaEscuela. Se establece la
conexin con la base de datos universidad, con la variable rs se almacena los
registros de la tabla de Docente y en la primera sentencia while se procede a
llenar la caja de lista desplegable referido al Docente con los apellidos y
nombres de cada uno de los Docentes. La necesidad de usar una matriz
Ing. Martn Salcedo Quiones

Pgina 10

Universidad Catlica Los ngeles de Chimbote Programacin Visual II


denominado profesor es para poder manejar los apellidos y nombres de forma
separada. Con la variable rs1 se almacena los registros provenientes de la
tabla de Escuela y con la segunda sentencia while se llena la lista desplegable
con los nombres de las escuelas profesionales.

Ing. Martn Salcedo Quiones

Pgina 11

Universidad Catlica Los ngeles de Chimbote Programacin Visual II

En las variables de memoria se almacena los apellidos y nombres del docente,


el semestre y la posicin del docente seleccionado para poder extraer de la
matriz los apellidos y nombres por separado. Establecido la conexin se busca
la carga acadmica del docente en el semestre indicado usando el mtodo
BuscaCargaAcademica(),

quien

su

vez

invoca

la

ejecucin

del

procedimiento almacenado sp_mostrar_carga_docente. El modelo de datos


se elimina todas las filas de informacin y se procede a llenar para que sea
visto a travs del objeto tablaCargaDocente. Con la variable rs1 se almacena
la suma de las horas tericas, las horas de prctica y las horas de laboratorio y
con la variable sumahoras, donde se almacena la suma de horas, se procede
a mostrar el resultado en el cuadro de texto txtHorasAsig. En el caso que rs1
no contenga fila alguna de datos se procede a visualizar un mensaje que indica
que no hay carga asignada.

Ing. Martn Salcedo Quiones

Pgina 12

Universidad Catlica Los ngeles de Chimbote Programacin Visual II

La interpretacin de ste cdigo es similar al botn de comando Consultar,


donde el mtodo BuscaCargaEscuela() se obtiene los datos de la carga
acadmica dado el nombre de la escuela y el semestre.
9. Se procede finalmente a ejecutar la consulta. Indicar como semestre 201001 y

como docente Salcedo Quiones Martn Gustavo. Al dar clic en el botn de


comando Consultar se visualiza:

Ing. Martn Salcedo Quiones

Pgina 13

Universidad Catlica Los ngeles de Chimbote Programacin Visual II

Al seleccionar la siguiente pestaa (Carga acadmica por Escuela) indicamos


como escuela profesional Ingeniera Civil y como semestre 201001. Al dar clic
en el botn de comando Mostrar se muestra:

Ing. Martn Salcedo Quiones

Pgina 14

También podría gustarte