Tema 5 Objeto JTable Mantenimiento Datos

Embed Size (px)

Citation preview

  • Universidad los ngeles de Chimbote Facultad de Ingeniera Escuela Profesional de Ingeniera de Sistemas Asignatura: Tecnologa Cliente Servidor

    OBJETO DE CONTROL JTABLE EN MANTENIMIENTO DE DATOS

    Objeto de control JTableLa presentacin de datos tabulados es una de las tareas ms comunes que se presentan

    al momento de crear interfaces grficas; desde la simple tabla que permite nicamente

    mostrar el resultado de una consulta, hasta las que permiten editar directamente el

    contenido de cada celda, ordenar las columnas, personalizar su apariencia, etc. Todas las

    tareas antes descritas, y muchas otras, son posibles de realizar utilizando la clase JTable;

    por supuesto, mientras ms complejo sea el requerimiento a cubrir, se requerir en igual

    medida utilizar ms mtodos o recursos de la clase.

    El objeto Jtable como los modelos de la tabla representados a travs de la interfaz

    1

  • Universidad los ngeles de Chimbote Facultad de Ingeniera Escuela Profesional de Ingeniera de Sistemas Asignatura: Tecnologa Cliente Servidor

    TableModel, pertenecen al paquete javax.swing. El siguiente grfico intenta mostrar como cada componente JTable obtiene siempre sus

    datos desde un modelo de tabla.

    El TableModel se implementa a partir de la clase AbstractTableModel, aunque existe un

    modelo de tabla predeterminado denominado la clase DefaiultTableModel. Las propiedad

    ms usada es model que permite definir el numero de filas y columnas, siendo los

    mtodos ms usados: setModel(), que permite vincular un modelo al obejto Jtable y

    getRowCount(), devuelve el nmero de filas en la tabla. Para la clase DefaultTableModel

    los mtodos ms utilizados son: AddRow(), aade una fila al final del modelo,

    getRowCount() devuelve el nmero de filas de la tabla de datos, getValueAt() devuelve

    el dato ubicado en la posicin fila y columna y removeRow() elimina una fila del modelo

    segn posicin indicada.

    Mantenimiento de Datos usando JTable como vista de datosUn mantenimiento de datos consiste en grabar datos en una tabla, eliminar datos

    correspondiente a un registro de datos como tambin modificar datos ya almacenados.

    Pero para eliminar datos o modificar datos se supone que los datos ya existen en la tabla

    de datos entonces se procedera hacer bsquedas sencillas para lograr su ubicacin y

    proceder a su eliminacin o modificacin de datos. En esta sesin haremos uso del

    reciente explicado objeto JTable para visualizar los datos contenidos en una tabla. A

    continuacin vamos a seguir usando la base de datos de campeonatouefa ya utilizada

    desde la tercera sesin de aprendizaje:

    1. Vamos a crear la tabla de estadio en la base de datos campeonatouefa. La

    instruccin para la creacin de dicha tabla es:

    create table estadio(codestadio int not null primary key auto_increment,nombre varchar(40) not null,sede varchar(32) not null,

    2

  • Universidad los ngeles de Chimbote Facultad de Ingeniera Escuela Profesional de Ingeniera de Sistemas Asignatura: Tecnologa Cliente Servidor

    pais varchar(20) not null,estado bit);

    Cabe sealar que los campos referidos a la sede y al pais pudieron haber sidos

    tablas que se relacionen con la tabla de estadio. Lo importante es como hacer

    mantenimiento de datos a una tabla, la normalizacin que se pueda hacer a las

    tablas que irn creando en la base de datos campeonatouefa queda para las

    modificaciones que crean convenientes.

    2. Logremos establecer la conexin con la base de datos de campeonatouefa en el

    entorno de NetBeans.

    3. Volvamos a la pestaa Proyects donde vamos a crear mtodos en la clase Main,

    necesarios para la conexin con la base de datos y el enlace con la tabla de

    estadio.

    3

  • Universidad los ngeles de Chimbote Facultad de Ingeniera Escuela Profesional de Ingeniera de Sistemas Asignatura: Tecnologa Cliente Servidor

    Agregamos los paquetes: java.io, java.sql y javax.swing. Este ltimo paquete es

    necesario para el uso de los objetos del paquete swing principalmente el

    JOptionPane para la visualizacin de posibles mensajes de error. Estando dentro

    de la clase Main establecemos las variables conn del tipo Connection, st del tipo

    Statement y rs del tipo ResultSet ya descritos y esplicados en las sesiones

    anteriores. Tambin definimos las varibales bd, login, password y url.

    A continuacin creamos el primer mtodo esttico denominado Enlace que

    devolver un objeto del tipo Connection. Este mtodo nos ayudar establecer la

    conexin con la base de datos campeonatouefa. Seguimos a continuacin

    agregando ms mtodos a la clase Main.

    4

  • Universidad los ngeles de Chimbote Facultad de Ingeniera Escuela Profesional de Ingeniera de Sistemas Asignatura: Tecnologa Cliente Servidor

    Se crea el mtodo sta que devolver un obejto del tipo Statement. Bsicamente

    permite crear el objeto del tipo Statement a partir del objeto connection a travs del mtodo createStatement(). Finalmente se necesita tener un mtodo

    denominado EnlEst que permitir enlazarnos con la tabla de Estadio aplicando el

    mtodo executeQuery() estableciendo a travs del comando select a todos los

    campos de la tabla de Estadio solo aquellos cuyo estado es igual a 1, es decir, los

    estadios que estn habilitados para su uso.

    Si observamos en cada uno de los mtodos se esta usando throws SQLException,

    esto quiere decir que los mtodos usan excepciones (intercepcion de errores) para

    los erroes que se pueden presentar durante la conexin y acceso de datos.

    4. La tabla de Estadio posee realmente cinco campos, pero el ltimo es para indicar si

    el estadio esta habilitado para su uso o no lo est, estom quiere decir si hacemos

    una elimnacin se proceder a cambiar el estado a 0 (elimacin lgica) y cada vez

    que grabemos los datos de un nuevo estadio se habilitar.

    Vamos a disear el siguiente formulario al cual lo llamaremos frmMantEstadio

    dando los nombres correspondientes a cada uno de los objetos de control

    dibujados.

    5

  • Universidad los ngeles de Chimbote Facultad de Ingeniera Escuela Profesional de Ingeniera de Sistemas Asignatura: Tecnologa Cliente Servidor

    5. Vamos a proceder a programar, colocando las siguientes lneas de cdigo.

    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 campeonato_uefa que contiene a la clase

    Main con lo cual podremos hacer uso de todos los mtodos que tenga.

    6

  • Universidad los ngeles de Chimbote Facultad de Ingeniera Escuela Profesional de Ingeniera de Sistemas Asignatura: Tecnologa Cliente Servidor

    Iniciamos la construccin de la clase frmMantEstadio, estableciendo como

    variables o atribnbutos conn, st y rs. Como se est utilizando un objeto JTable se

    define la variable dtm del tipo DefaulTableModel. En el mtodo constructor hacemos uso del mtodo activabotones (programacin que veremos luego), se establece un vector o arreglo del tipo String donde se coloca los ttulos que sern

    de cada una de las columnas del objeto JTable. A partir del mtodo setColumnIdentifiers indicamos los datos del vector titulos al objeto dtm y con el mtodo setModel vinculamos el objeto dtm al objeto JTable denominado

    tablaEstadio. Los mtodos setSize y setLocation es para establecer el tamao y la localizacin del formulario en la pantalla del computador.

    7

  • Universidad los ngeles de Chimbote Facultad de Ingeniera Escuela Profesional de Ingeniera de Sistemas Asignatura: Tecnologa Cliente Servidor

    El mtodo activaBotones es para habilitar o inhabilitar el uso de los botones de comando, esto depender en que circuntancias nos encontremos en la ejecucin

    de la aplicacin de mantenimiento de datos de Estadios. Con el mtodo

    limpiarDatos se limpia los cuadros de textos.

    En el botn de comando btnBuscar si est habilitado despus de dar clic en dicho botn, se proceder a la conexin con la base de datos, luego en la variable rs se

    almacenar los datos provenientes de la tabla de Estadio. En la variable b se

    coloca el valor ingresado en el cuadro de texto txtCodEst. Se define una variable boleana encuentra para manejar la situacion de xito o fracaso de la bsqueda.

    En la sentencia while utizamos el mtodo next que pertenece al obejto rs, es decir,

    es un mtodo de la interfaz ResulSet. El mtodo next devuelve verdadero si

    8

  • Universidad los ngeles de Chimbote Facultad de Ingeniera Escuela Profesional de Ingeniera de Sistemas Asignatura: Tecnologa Cliente Servidor

    encuentra la primera fila de informacin, las siguientes veces se desplaza en cada

    registro almacenado en el rs. La sentencia if que se encuentra dentro del while, su

    condicin lgica se har verdadero cuando encuentre el cdigo de estadio

    buscado, haciendo que los cuadros de textos se muestren los dems datos, es

    entonces que la variable encuentra recin se hace verdadero.

    El botn de comando btnVer (Ver Lista de Estadios), consiste en aumentar el

    tamao del formulario para visualizar el objeto JTable. Posteriormente se establece

    la conexin con la base de datos y en la variable rs se almacena los datos

    provenientes de la tabla de Estadio. Se define un vector denominado datos de

    tamao 5 elementos del tipo String que servir colocar los datos de una fila para

    luego agregarlo al objeto dtm que est vinculado al objeto JTable llamado

    tablaEstadio. Pero antes de agregarlo debemos asegurarnos que no exista fila

    alguna de datos en el modelo dtm y por ende en la tablaEstadio. El bucle de la

    sentencia while permite colocar en cada elemento del arreglo los datos extraidos de

    una fila que almacena el objeto rs, esto es posible ya que el mtodo getString,

    9

  • Universidad los ngeles de Chimbote Facultad de Ingeniera Escuela Profesional de Ingeniera de Sistemas Asignatura: Tecnologa Cliente Servidor

    indicando la posicin de la columna, podemos obtener el dato de la fila actual.

    Con el mtodo addRow logramos crear una fila con los datos del vector datos en el

    objeto dtm y como est vinculado a la tablaEstadio entonces se podr ver los

    registros agregados.

    Para el botn de comando btnNuevo, limpiamos los cuadros de textos con el mtodo limpiarObjetos. Se inhabilita el cuadro de texto txtCodEst y se enva el cursor al cuadro de texto txtNom. Se inhabilta los botones de comando a excepcin de grabar ya que estamos en el momento de ingresar nuevos datos y

    proceder a almacenar.

    En el botn de comando btnGrabar se incia visualizando un mensaje de confirmacin para proceder a grabar, esto se logra usando el mtodo

    10

  • Universidad los ngeles de Chimbote Facultad de Ingeniera Escuela Profesional de Ingeniera de Sistemas Asignatura: Tecnologa Cliente Servidor

    showConfirmDialog de la clase JoptionPane. Si la respuesta es S entonces la sentencia if su condicin lgica se har verdadera y por lo tanto establecemos

    conexin con la base de datos campeonatouefa, pasamos los datos ingresados a

    variables como nom, sede y pais. En la variable comando establecemos la

    instruccin con el comando INSERT para luego usar el mtodo executeUpdate

    quien proceder a grabar los datos. Posteriormente se procede a cerrar la conexin

    con el mtodo close del objeto connection conn.

    En el botn de comando btnEliminar, tambin se procede a travs de un mensaje confirmar si procede la eliminacin de los datos del Estadio. Si la respuesta es

    afirmativa se procede a conextarse a la base de datos y en la variable de memoria

    cod se almacenada el cdigo del estadio ingresado a traves del cuadro de texto

    txtCodEst. Se construye la instruccin usando el comando UPDATE, luego

    ejecutamos la eliminacin lgica haciendo que el campo estado sea igual a cero y

    se cierra la conexin con la base de datos.

    11

  • Universidad los ngeles de Chimbote Facultad de Ingeniera Escuela Profesional de Ingeniera de Sistemas Asignatura: Tecnologa Cliente Servidor

    En el botn de comando btnModificar, al igual que de grabar o eliminar se procede a confirmar a travs de un mensaje si se procede a la modificacin de datos. Una

    vez salvados los datos ingresados en los cuadros de textos en variables de

    memoria se prepara la instruccin en la variable de memoria comando. Usamos el

    comando UPDATE para actualizar los datos. Se procede a ejecutar el comando con

    el mtodo executeUpdate y se cierra la conexin con el mtodo close.

    En el botn de comando Cancelar, luego de dar respuesta afirmativa se procede a

    limpiar los cuadros de textos, habilta el cuadro de texto txtCodEst para su uso y se

    vuelve a su estado inicial la hablitacin de los botones de comando.

    12

  • Universidad los ngeles de Chimbote Facultad de Ingeniera Escuela Profesional de Ingeniera de Sistemas Asignatura: Tecnologa Cliente Servidor

    El botn de comando btnCerrar, con el mtodo dispose se cierra la ventana o formulario.

    6. Procedemos a ejecutar el formulario, seleccionado Run File.

    7. Observamos el formulario ejecutado.

    8. Al dar clic en el botn de comando Nuevo podemos proceder a ingresar datos. Una

    vez ingresado damos clic en el botn de comando Grabar.

    13

  • Universidad los ngeles de Chimbote Facultad de Ingeniera Escuela Profesional de Ingeniera de Sistemas Asignatura: Tecnologa Cliente Servidor

    9. Luego de grabar, al dar clic en el botn de comando Ver Lista de Estadios, el

    formulario se mostrar de la siguiente forma.

    14