UNIVERSIDAD NACIONAL DEL SANTA FACULTAD DE INGENIERIA E.A.

P INGENIERIA DE SISTEMAS E INFORMATICA

MANUAL DE TECNOLOGIA CLIENTE - SERVIDOR CON JAVA

Ing. Mirko Manrique Ronceros
Primera Edición

Este Documento Ha sido descargado desde la Web más completa en todo tipo de ebooks y Tutoriales.

Si deseas más información o libros, entonces ingresa a: http://www.enigmaelectronica.tk http://www.foroenigma.tk Y podrás descargar muchas aplicaciones útiles.

      

Libros Manuales Tutoriales Cursos Programas Música Películas Grupo Enigma Electrónica Enigma Team

Si algún Archivo Requiriera de Contraseña de acceso siempre será: www.enigmaelectronica.tk

Universidad Nacional del Santa Facultad de Ingeniería E.A.P. Sistemas e Informática

Tecnología Cliente–Servidor con Java

INDICE
Introducción Programación Cliente – Servidor Herramientas para la Programación Cliente – Servidor Arquitectura Cliente – Servidor Conectividad a la Base de Datos con JDBC Uso del Entorno Netbeans para conexión a Base de Datos Acceso de la base de datos y el paquete java.sql Objeto de control JTable en mantenimiento de datos Swing, Menús y mantenimiento de datos usando varias tablas Mantenimiento de datos usando procedimientos almacenados Transacciones y Búsquedas con base de datos consulta de datos usando el objeto JTable 02 03 04 06 08 16 26 38 50 66 77 90

Ing. Mirko Manrique Ronceros

Página 2 de 100

Entre otros. Mirko Manrique Ronceros Página 3 de 100 . El presente documento Tecnología Cliente Servidor con Java es un manual orientado al conocimiento del lenguaje Java. existen: servidores de impresión mediante los cuales los usuarios comparten impresoras. en algún lugar de una red. Los sistemas Cliente-Servidor pueden ser de muchos tipos. Los servidores web quizás actualmente son los de mayor importancia.Universidad Nacional del Santa Facultad de Ingeniería E. utilizando como entorno de desarrollo NetBeans y un gestor de bases de datos de preferencia MySql. aunque añaden aspectos nuevos y propios a la misma. En este manual se hará una presentación y estudio de las interfaces visuales a través de Java como lenguaje de programación. la segunda es “Mantenimiento de Datos” y la tercera “Consultas e Informes”. servidores de archivos con los que los clientes comparten discos duros. se comunica con el servidor remoto y pide a éste información. Ing. el servidor Web aporta ventajas adicionales a un servidor tradicional. Un servidor web es aquel que permite a los clientes compartir datos. servidores de bases de datos donde existe una única base de datos que es consultada por los clientes y puede o no ser modificada por ellos y servidores Web que utilizan también la tecnología Cliente/Servidor. documentos y multimedia en formato web. la primera es el “Acceso de Datos”. que proporciona información según se le solicite.A. El manual tendrá 03 temas fundamentales.P. Sistemas e Informática Tecnología Cliente–Servidor con Java INTRODUCCION La tecnología llamada Cliente /Servidor es actualmente utilizada en casi todas las aplicaciones administrativas e Internet/Intranet. Mientras que un cliente funciona en su computadora local. un servidor es un ordenador remoto. Bajo este esquema. pues esto depende principalmente de las aplicaciones instaladas en el propio servidor. Aunque parte de la tecnología Cliente/Sevidor.

ni la posibilidad de ejecutar programas en la parte del usuario. Internet es un sistema Cliente-Servidor gigante. a través de los applets. el uso de multihilo. se actualice cuando se actualice. permite la programación de la parte cliente. pero su finalidad principal es la visualización de ficheros.P. ya que permitía visualizar un mismo fichero en plataformas diferentes sin hacerle cambio alguno. La clave de este concepto radica en que si se produce un cambio en la información del sistema central. en que el rendimiento general del sistema decrece de forma exponencial al aumento del número de clientes. Inicialmente. en la Web. que se desea distribuir bajo demanda a un conjunto de personas o máquinas. la programación de redes y la programación distribuida. como tantos otros. ejecuta un programa. lo que verdaderamente es importante es que también resuelve los problemas que se generan en Internet. al igual que cualquier gráfico. Java está siendo continuamente extendido para proporcionarle nuevas características y librerías que resuelven elegantemente problemas que son muy difíciles en la programación tradicional como el acceso a bases de datos. en la Telaraña Mundial. El navegador fue el primer paso adelante en la expansión de Internet.Servidor Java es un nuevo lenguaje de programación. Mirko Manrique Ronceros Página 4 de 100 . a la parte cliente. no la interactividad con el usuario. inmediatamente es propagada a los receptores de la información. porque aunque resuelve algunos de los problemas típicos de este tipo de programación. y además porque Java. Ing. El funcionamiento de la Web sigue este mismo principio. La respuesta no es inmediatamente obvia si se observa el asunto desde el punto de vista de la programación tradicional. el concepto básico es muy simple. con lo cual siempre tendrá el cliente la última versión de ese software. Este es el interés. La idea primaria de un sistema cliente-servidor es que debe haber un sitio donde se centraliza la información. proporciona una forma a través de la cual se puede distribuir software al cliente desde el servidor. Luego. Así que uno se pregunta el por qué del revuelo que se ha formado con su aparición. y no antes. Además. y cuando se activa.Universidad Nacional del Santa Facultad de Ingeniería E. tal como está diseñado Java. en la parte cliente del sistema. Sistemas e Informática Tecnología Cliente–Servidor con Java Programación Cliente . se solicita una información a un servidor y éste envía de vuelta un fichero que será interpretado por el navegador (el cliente) que lo formateará para visualizarlo en la máquina cliente. el problema se presenta cuando hay solamente un servidor que tiene colgados a muchos clientes. el programador necesita crear su programa una sola vez. en el World-Wide-Web. y ya estará listo para ser ejecutado en todas las plataformas que dispongan de un navegador con soporte Java. en el momento en que el cliente necesite ese software.A. Un applet es un miniprograma que corre solamente bajo un navegador y es descargado automáticamente como parte de una página Web.

Servidor: Tenemos: Sockets – – – – Implementados en todos los sistemas operativos modernos. NET Ventajas: ● Soporta múltiples plataformas ● Fácil proceso de desarrollo (Visual Studio .P. El cliente debe conocer la máquina y el puerto donde se ubica el servidor.A. Comunican dos procesos que pueden estar alojados en dos máquinas diferentes. CORBA: Es necesario que exista una versión de CORBA para la plataforma donde se quiere implementar. Alternativas para desarrollo de aplicaciones: 1. Sigue siendo necesaria la distinción del código cliente y del código servidor. Sistemas e Informática Tecnología Cliente–Servidor con Java Herramientas para la Programación Cliente . 2. ● Buen marketing Inconvenientes: ● Exclusiva del sistema operativo Windows ● Propia de Microsoft ● Casi ninguna implementación libre. RPCs – – Basado en Sockets. Mirko Manrique Ronceros Página 5 de 100 . Abstrae al programador del uso de Sockets. Dispone de una gran cantidad de servicios Definida por un organismo serio e independiente Incovenientes: ● ● ● Complejidad en el desarrollo Lentitud para adaptarse Pocas implementaciones libres.Universidad Nacional del Santa Facultad de Ingeniería E.Net) ● Entorno Windows muy extendido. Ing. Se debe establecer un protocolo cliente/servidor para el correcto funcionamiento de la aplicación. Ventajas: ● ● ● Soporta múltiples plataformas y lenguajes de programación.

Universidad Nacional del Santa Facultad de Ingeniería E. claves. ● Lógica de Negocio: Funcionalidad de la empresa. Arquitectura Cliente Servidor: Modelo Lógico: ● Gestor de presentación: Muestra la interface del usuario. IBM. etc. JAVA EE Ventajas: ● Soporta para múltiples plataformas y sistemas operativos ● Avalado por múltiples empresas (SUN. ORACLE. ● Lógica de la Aplicación: Funcionalidad de la aplicación. Mirko Manrique Ronceros Página 6 de 100 .) ● Gestor de Datos: Encargada de escribir y acceder a la base de datos. etc) ● Competitividad ● Soluciones Libres Inconvenientes: ● Exclusivo para el lenguaje Java ● Complejidad relativa en el desarrollo de aplicaciones ● No existe un entorno de desarrollo fijo. Modelo Físico: – 1 capa (Sistema monolítico.P. tipos de datos. común para todas las aplicaciones. tablas. ● Lógica de Presentación: Establece que se debe mostrar al usuario. no es realmente una aplicación C/S) Ing. Sistemas e Informática Tecnología Cliente–Servidor con Java 3. ● Lógica de los datos: Definición lógica de los datos (vistas.A.

xHTML. XML. Sistemas e Informática – 2 capas (Cliente Servidor tradicional) Tecnología Cliente–Servidor con Java – 3 capas (Cliente – Lógica Negocio – Datos) El modelo de 3 capas esta basado en objetos: – – Clientes: Que son aplicaciones propias Lógica de Negocio y de Datos: Objetos distribuidos También está basado en la WEB: – Clientes: Navagadores – Lógica de Negocio y de Datos: Generación dinámica de contenidos en lenguaje HTML.A.Universidad Nacional del Santa Facultad de Ingeniería E.P. Ing. Mirko Manrique Ronceros Página 7 de 100 .

y archivos "planos". Mirko Manrique Ronceros Página 8 de 100 . Java Database Connectivity) es un marco de programación para los desarrolladores de Java que escriben los programas que tienen acceso a la información guardada en bases de datos. Para la gente del mundo Windows. Sistemas e Informática Tecnología Cliente–Servidor con Java CONECTIVIDAD DE LA BASE DE DATOS CON JDBC ¿Qué es un JDBC? La conectividad de la base de datos de Java (JDBC . ODBC es un interfaz escrito en lenguaje C. ODBC tiene el inconveniente Ing.Universidad Nacional del Santa Facultad de Ingeniería E. al igual que ODBC. Este driver es el que implementa la funcionalidad de todas las clases de acceso a datos y proporciona la comunicación entre el API JDBC y la base de datos real.P. hojas de calculo.A. haría que las aplicaciones Java también perdiesen la portabilidad. Lógicamente. JDBC es para Java lo que ODBC es para Windows. pero define el estándar ODBC consistente en un conjunto de primitivas que cualquier driver o fuente ODBC debe ser capaz de entender y manipular. Windows en general no sabe nada acerca de las bases de datos. sin importar qué software de administración o manejo de base de datos se utilice para controlarlo. Con JDBC ocurre exactamente lo mismo: JDBC es una especificación de un conjunto de clases y métodos de operación que permiten a cualquier programa Java acceder a sistemas de bases de datos de forma homogénea. que al no ser un lenguaje portable. Los programadores que a su vez deseen escribir programas para manejar bases de datos genéricas en Windows utilizan las llamadas ODBC. JDBC se utiliza comúnmente para conectar un programa del usuario con una base de datos por “detrás de la escena”. Y además. la aplicación de Java debe tener acceso a un driver JDBC adecuado.

Como sabemos en Java se puede tener dos tipos de aplicaciones: la aplicación Java propiamente dico y una aplicación applet. Aunque. se conectan directamente a la base de datos. aunque para usar directamente el JDK se haga imprescindible Acceso a base de datos con JDBC A continuación vemos los modelos diferentes de acceso a base de datos: Modelo de 2 capas El presente modelo se basa en que la conexión se presenta entre la aplicación Java o el applet (que se ejecuta en el navegador). Ing. esta última que se ejecuta en un navegador. las instrucciones son enviadas a una capa intermedia entre Cliente y Servidor. que al estar escritos en Java son automáticamente instalables. ésta las procesa y envía los resultados de vuelta a la aplicación Modelo de 3 capas El presente modelo.P. Mirko Manrique Ronceros Página 9 de 100 . afortunadamente. por lo que se hace imprescindible un conocimiento adecuado de SQL para realizar cualquier clase de operación de bases de datos. La conectividad de bases de datos de Java se basa en sentencias SQL. La base de datos puede estar en cualquier otra máquina y se accede a ella mediante la red.A. al contrario que los drivers JDBC. portables y seguros. con la máquina donde reside la base de datos. casi todos los entornos de desarrollo Java ofrecen componentes visuales que proporcionan una funcionalidad suficientemente potente sin necesidad de que sea necesario utilizar SQL. Observamos en la figura que el driver o controlador JDBC debe residir en la computadora local.Universidad Nacional del Santa Facultad de Ingeniería Tecnología Cliente–Servidor con Java E. Sistemas e Informática de que se ha de instalar manualmente en cada máquina. que es la que se encarga de enviar las sentencias SQL a la base de datos y recoger el resultado desde la base de datos. En este caso el usuario no tiene contacto directo. ni a través de la red. Esta es la configuración de típica Cliente/Servidor: el programa cliente envía instrucciones SQL a la base de datos.

Mirko Manrique Ronceros Página 10 de 100 . estableciendo un puente entre JDBC y ODBC. Clasificación de los Drivers El driver JDBC puede pertenecer a una de las siguientes categorías: Puente JDBC-ODBC Utilizada por Sun inicialmente para popularizar JDBC y consiste en aprovechar todo lo existente.A. se observa que el driver o controlador JDBC se encuentra junto al servidor de aplicaciones.P.Universidad Nacional del Santa Facultad de Ingeniería E. Sistemas e Informática Tecnología Cliente–Servidor con Java Comparando con el modelo anterior. Ing. Este driver convierte todas las llamadas JDBC a llamadas ODBC y realiza la conversión correspondiente de los resultados. El nivel intermedio mantiene en todo momento el control del tipo de operaciones que se realizan contra la base de datos. esto hace que la máquina del cliente no se preocupe por instalar el controlador.

P. Este driver es un driver con las limitaciones y problemas que esto implica.Universidad Nacional del Santa Facultad de Ingeniería E. Mirko Manrique Ronceros Página 11 de 100 . La ventaja de este tipo de driver es que es una solución 100% Java y. Sistemas e Informática Tecnología Cliente–Servidor con Java La ventaja de este driver. el driver no necesita intermediarios para hablar con el servidor y convierte todas las peticiones JDBC en peticiones de red contra el servidor. La desventaja está en que es lenta y no será posible ser usada en el sistema operativo Linux. 100% Java pero aún así necesita la existencia de un código binario (la librería DBMS) en la máquina del cliente. Java Binario Este driver se salta la capa ODBC y habla directamente con la librería nativa del fabricante del sistema DBMS (como pudiera ser DB-Library para Microsoft SQL Server o CTLib para Sybase SQL Server). por lo tanto. es que Java dispone de acceso inmediato a todas las fuentes posibles de bases de datos y no hay que hacer ninguna configuración adicional aparte de la ya existente. que se proporciona con el JDK. independiente de la máquina en la que se va a ejecutar el programa Ing. 100% Java/Protocolo Nativo Este driver es realizado completamente en Java que se comunica con el servidor DBMS utilizando el protocolo de red nativo del servidor. De esta forma.A.

sql. Ing. El siguiente paso después de importar el paquete java. se tiene lo siguiente: Class.P.forName("Controlador JDBC"). que está ubicado en el lado del servidor. convierte las peticiones JDBC en peticiones nativas del sistema DBMS. pero la más sencilla es utilizar el método forName() de la clase Class: Class. Sistemas e Informática Tecnología Cliente–Servidor con Java La única desventaja de este tipo de drivers es que el cliente está ligado a un servidor DBMS concreto.sql. Cargar el controlador JDBC Para trabajar con el API JDBC se tiene que importar el paquete java. Para el caso particular del controlador para MySQL. El intermediario a su vez.mysql. En este caso. es decir un objeto Driver específico para una base de datos que define cómo se ejecutan las instrucciones para esa base de datos en particular.sql consiste en cargar el controlador JDBC. tal y como se indica a continuación: import java. Mirko Manrique Ronceros Página 12 de 100 . La ventaja de este método es inmediata: el programa que se ejecuta en el cliente.jdbc.A.*.Driver").forName("com. En este paquete se definen los objetos que proporcionan toda la funcionalidad que se requiere para el acceso a bases de datos. y aparte de las ventajas de los drivers 100% Java. también presenta la independencia respecto al sistema de bases de datos que se encuentra en el servidor.Universidad Nacional del Santa Facultad de Ingeniería E. Hay varias formas de hacerlo. Connector/J. 100% Java/Protocolo Independiente Requiere la presencia de un intermediario en el servidor. el driver JDBC hace las peticiones de datos al intermediario en un protocolo de red independiente del servidor DBMS.

Algunos controladores no crean automáticamente una instancia cuando se carga la clase. Cualquier controlador JDBC tiene que incluir una parte de iniciación estática que se ejecuta cuando se carga la clase. conn = DriverManager.login.forName(“com.newInstance().close(). static String url=”jdbc:mysql://localhost/”+bd. Si forName() no crea por sí solo una instancia del controlador.Universidad Nacional del Santa Facultad de Ingeniería E.A.P.registerDriver(driver).jdbc. para el Connector/J: Class. } Ing. public static void mian(String[ ] args)throws IOException { Connection conn = null.out.newInstance().. conn.Driver). if (conn != null) { System. static String login=”bingo”.password). Driver driver = (Driver)c.Driver"). De nuevo.forName("Controlador JDBC").getConnection(url.newInstance(). Mirko Manrique Ronceros Página 13 de 100 . Es decir.mysql. Sistemas e Informática Tecnología Cliente–Servidor con Java Debe tenerse en cuenta que el método estático forName() definido por la clase Class genera un objeto de la clase especificada. es equivalente a: Class c = Class. try { Class.forName("Controlador JDBC"). se ejecuta la iniciación estática. static String password=”hola”. El siguiente código nos servirá para verificar que podemos establecer una conexión a nuestra base de datos transportes import java. que pasa a registrarse como un controlador JDBC en el DriverManager.sql. OK”).mysql. En cuanto el cargador de clases carga dicha clase. el siguiente código: Class. Los programas en Java no son la excepción.forName("Controlador JDBC").*. En toda aplicación de bases de datos con MySQL es indispensable poder establecer la conexión al servidor para posteriormente enviarle las consultas. se tiene que hacer esto de manera explícita: Class.println(“Conexión a la base de datos ”+bd+”.jdbc.. public class TestConnection { Static String bd=”transportes”. DriverManager.newInstance().forName("com.

Universidad Nacional del Santa Facultad de Ingeniería Tecnología Cliente–Servidor con Java E.A.P. Sistemas e Informática } catch(SQLException ex) { System.out.println(ex); } catch(ClassNotFoundException ex) { System.out.println(ex); } } } En esta programación se inicia importanto el paquete sql perteneciente a java. El signo del asterisco significa que el programa puede hacer uso de culaquier clase contenida en el paquete sql. Se construye la clase TextConnection, estableciendo 4 variables o atributos de tipo String donde se almacena el nombre de la base de datos, el login, la contraseña o password y el url. Una vez en el método principal llamado main se declara la variable objeto conn y a través de la instrucción try se busca proteger la ejecución ante posibles errores (lo que se denomina manejo de excepciones). Con la instrucción: Class.forName(“com.mysql.jdbc.Driver).newInstance();, se establece el driver para el gestor de base de datos MySql. Luego en la siguiente línea de programación se establece la conexión con la base de datos a través del método getConnection perteneciente a la clase DriverManager. A través de la sentencia selectiva if se evalúa el éxito de la conexión, por lo tanto, si la variable conn es diferente de null significa que se logró la conexión, caso contrario se mostrará mensajes de error, gracias a la instrucción catch. A continuación se listan algunas de las salidas que se pueden obtener al ejecutar el programa anterior: [blueman@casita]$ java TestConnection Conexión a base de datos jdbc:mysql://localhost/agendita ... Ok (significa: Todo funciona bien) [blueman@casita]$ com.mysql.jdbc.Driver (Seguramente no se ha puesto la ruta al archivo connector.jar en la variable de ambiente CLASSPATH) [blueman@casita]$ java TestConnection java.sql.SQLException: Invalid authorization specification: Access denied for user: 'bingo@localhost' (Using password: YES) Ing. Mirko Manrique Ronceros Página 14 de 100 java TestConnection java.lang.ClassNotFoundException:

Universidad Nacional del Santa Facultad de Ingeniería E.A.P. Sistemas e Informática

Tecnología Cliente–Servidor con Java

(El login o el password proporcionados no nos permiten el acceso al servidor) [blueman@casita]$ java TestConnection java.sql.SQLException: No suitable driver (Probablemente se ha escrito de forma incorrecta el URL para la base de datos)

[blueman@casita]$ java TestConnection java.sql.SQLException: General error: Access denied for user: 'bingo@localhost' to database 'transportes' (Probablemente se ha escrito de manera incorrecta el nombre de la base de datos)

Ing. Mirko Manrique Ronceros

Página 15 de 100

Universidad Nacional del Santa Facultad de Ingeniería E.A.P. Sistemas e Informática

Tecnología Cliente–Servidor con Java

USO DEL ENTORNO DE NETBEANS PARA LA CONEXIÓN DE BASE DE DATOS
Conector a la base de datos
Una aplicación en Java para que logre comunicarse con una base de datos usando la API JDBC, se requiere de un conector. Ese conector es específico para el manejador de base de datos y viene en la forma de un archivo “.jar” o “.zip”. El conector para la base de datos MySQL, está en el archivo: mysql-connector-java-3.1.XX.jar Existe versiones superiores como la versión 5.0 para dicho conector. NetBeans nos permite la tarea de conectar una aplicación a una base de datos Conexión de una Aplicación a una base de datos creada en MySql Para conectar a una aplicación a una base de datos, se requiere:

1. 2.

Agregarle a NetBeans el conector como una biblioteca o librería. Esto permite que el conector este disponible para los proyectos. Agregarle a un proyecto el conector. Esto permite que la aplicación se pueda conectar a la base de datos.

A continuación procedemos agregarle a NetBeans un conector a una base de datos MySql: a. Seleccione la opción Tools/Libraries de la barra de menú del entorno de NetBeans.

Ing. Mirko Manrique Ronceros

Página 16 de 100

como por ejemplo MySQL y luego damos click en el botón de comando OK. Mirko Manrique Ronceros Página 17 de 100 . Ing.P.A. al lado izquierdo observa librerías agregadas NetBeans... a. botón de Posteriormente comando Add procedemos a dar clic en el JAR/Folder . b. En la ventana. lado a Del se las derecho aparece el nombre de la biblioteca y la trayectoria del archivo con la biblioteca. Sistemas e Informática Tecnología Cliente–Servidor con Java b.Universidad Nacional del Santa Facultad de Ingeniería E.. Se visualiza un cuadro diálogo permite administrar librerías bibliotecas las o de de que NetBeans. Se cierra y el cuadro a de la diálogo volvemos ventana anterior donde se observará la nueva librería MySQL.. Para agregar el conector a MySQL a NetBeans presione el botón de comando New Library . Se mostrará un cuadro de diálogo donde se establecerá el nombre que daremos al conector.

1. Mirko Manrique Ronceros Página 18 de 100 . Al dar clic en Add JAR/Folder volvemos a la ventana anterior.A. Ing.c. Sistemas e Informática Buscamos el conector mysql-connector-java-3. denominada MYSQL JDBC Driver. Damos click en el botón de comando Ok y vamos a crear un proyecto: 1) Seleccionamos la opción File/New Proyect de la barra de menú del entorno de NetBeans.jar d.P.7. Universidad Nacional del Santa Facultad de Ingeniería Tecnología Cliente–Servidor con Java E.bin. Cabe señalar que en las últimas versiones de NetBeans ya existe una librería o biblioteca para la conexión a una base de datos de MySql.

Sistemas e Informática Tecnología Cliente–Servidor con Java 2) Seleccionamos en Categories: Java y como proyecto: Java Application.P.Universidad Nacional del Santa Facultad de Ingeniería E. Mirko Manrique Ronceros Página 19 de 100 . Luego damos click en el botón de comando Next. quedando el entorno de NetBeans de la siguiente manera: Ing.A. 3) Luego indicamos como nombre del proyecto campeonatoUefa y posteriormente damos clic en el botón de comando Finish.

5) Aparece un cuadro de diálogo para seleccionar la librería a agregar.A. Sistemas e Informática Tecnología Cliente–Servidor con Java 4) En Libraries lo seleccionamos y damos clic con el botón de derecho y eligimos la opción Add Library.P. 6) Volvemos al entorno de NetBeans y se observa la nueva librería agregada. Ing.Universidad Nacional del Santa Facultad de Ingeniería E. Mirko Manrique Ronceros Página 20 de 100 . en este caso MySQL (en las últimas versiones de NetBeans tenemos el conector MySQL JDBC Driver) y damos clic en Add Library.

7) Universidad Nacional del Santa Facultad de Ingeniería Tecnología Cliente–Servidor con Java E. 8) Para agregar el concetor MySQL. Ing. Mirko Manrique Ronceros Página 21 de 100 . haga clic en el botón derecho del mouse en el nodo o carpeta Drivers y seleccione la opción New Driver. Sistemas e Informática Ahora procedemos a la concexión de una base de datos. 10) Navegar hasta encontrar el conector. seleccionado y dando clic en Abrir. 9) Aparecerá el cuadro de diálogo para agregar un conector.P. la misma que ya se encuentra creada conjuntamente con las tablas de Ciudad y Ruta. Dar clic en el botón de comando Add.A. que en este caso será la base de datos transportes. Seleccionamos la pestaña Services y en Databases seleccionamos la carpeta Drivers.

A. Sistemas e Informática Tecnología Cliente–Servidor con Java 11) En el cuadro de diálogo para agregar el conector se mostrará la información del conector seleccionado.P. Luego dar clic en el botón de comado OK. 12) Un nuevo nodo para el conector a MySql. Ing.Universidad Nacional del Santa Facultad de Ingeniería E. aparecerá en la pestaña Services. Mirko Manrique Ronceros Página 22 de 100 .

en caso que el servidor esté en la misma computadora que NetBeans utiliza el nombre: localhost. Si el servidor utiliza el puerto predefinido. Mirko Manrique Ronceros Página 23 de 100 . Seleccionamos el driver MySQL y damos clic botón derecho y elegimos la opción Conecting using. se puede omitir. 14) Se muestra un cuadro de diálogo para establecer el URL de la base de datos usando el siguiente formato: jdbc:mysql://servidor:puerto/baseDatos donde servidor es la dirección IP (o nombre de dominio del servidor). baseDatos es la base de datos a la que se desea conectar. Luego damos clic en el botón de comando OK. 15) Damos clic en el botón de comando OK.Universidad Nacional del Santa Facultad de Ingeniería E. A continuación aparecerá una ventana confirmando la conexión con la base de datos de campeonatouefa. Sistemas e Informática Tecnología Cliente–Servidor con Java 13) Ahora procederemos a conectarnos con la base de datos de campeonatouefa. puerto es el puerto empleado por el servidor. Ing.A.P.

Ing. 17) Si damos click en + respecto al nodo creado se visualizará la tabla existente en la base de datos de campeonatouefa.P.A.Universidad Nacional del Santa Facultad de Ingeniería E. Mirko Manrique Ronceros Página 24 de 100 . Sistemas e Informática Tecnología Cliente–Servidor con Java 16) En el entorno de NetBeans se mostrará un nuevo nodo de conexión a la base de datos.

Sistemas e Informática Tecnología Cliente–Servidor con Java Ing.P.A.Universidad Nacional del Santa Facultad de Ingeniería E. Mirko Manrique Ronceros Página 25 de 100 .

agregar. Expanda el nodo con la conexión a la base de datos.Universidad Nacional del Santa Facultad de Ingeniería E. Mirko Manrique Ronceros Página 26 de 100 . Ing.SQL Acceso a la base de datos desde NetBeans NetBeans nos permite hacer operaciones sobre la base de datos como crear y borrar tablas. modificar y eliminar registros de datos como realizar consultas. Si expandimos el nodo referido a Tables veremos la tabla estadio.P. Procedures carpetas Views (procedimeintos). agregar y eliminar columnas.A. Observamos en la figura anterior las referidas (vistas) a Tables y (tablas). Vamos a proceder hacer algunas operaciones: 1. 2. Sistemas e Informática Tecnología Cliente–Servidor con Java USO DEL ENTORNO DE NETBEANS PARA EL ACCESO DE LA BASE DE DATOS Y EL PAQUETE JAVA.

Volvemos al entorno de NetBeans y observamos en la pestaña de Services la nueva tabla de Equipo. grupo char(1) y estado bit. 4. Una vez indicado los campos damos clic en el botón de comando 5. Tecnología Cliente–Servidor con Java Si seleccionamos el nodo referido a Tables y damos clic botón derecho.A. nombre OK. Mirko Manrique Ronceros Página 27 de 100 .Universidad Nacional del Santa Facultad de Ingeniería E. varchar(40). Sistemas e Informática 3. Vamos a proceder a crear la tabla de Equipo con los campos codequipo int. representante varchar(32). Ing. se muestra un menú flotante y luego elegimos la opción Create Table. entrenador varchar(40).P.

P.A. Ing. Si deseamos insertar un registro a una de las tablas a través del comando insert..Universidad Nacional del Santa Facultad de Ingeniería E. seleccionamos el nodo referido a Tables. Sistemas e Informática Tecnología Cliente–Servidor con Java 6. 7. luego procedemos a ejecutarlo. Mirko Manrique Ronceros Página 28 de 100 .. Escribimos el comando para insertar un nuevo registro en la tabla de Equipo. Dando clic botón derecho se muestra un menú flotante y luego seleccionamos la opción Execute Command.

Ahora ustedes mismos. Sistemas e Informática 8.Universidad Nacional del Santa Facultad de Ingeniería E.P.A. Mirko Manrique Ronceros Página 29 de 100 . procedan a experimientar el entorno gráfico que nos ofrece NetBeans. Ing. Como verán el entorno de NetBeans nos ofrece la oportunidad de acceder y manipular los datos y las estructuras de los elementos que conforman una base de datos. Tecnología Cliente–Servidor con Java Luego si escribimos el comando select para consultar los datos de la tabla Ciudad. en base a la experiencia de los conocimeintos adquiridos en los cursos referentes a base de datos. observaremos el contenido de dicha tabla.

permite llevar a cabo una conexión con la base de datos logrando cargar un driver. Una dirección URL JDBC proporciona un método de localización de bases muy parecido al que representan las direcciones URL que identifican sitios Web de Internet. Existen varios métodos para ello. Dos de los más importantes son: public abstract Statement createStatement() throws SQLException public abstract void close() throws SQLException El primero de los métodos sirve para crear un objeto del tipo Statement. es conveniente cerrar las conexiones tan pronto como dejen de utilizarse para liberar recursos. String password) throws El primero de los métodos recibe como parámetro la dirección URL que identifica la base de datos. ● La interfaz Connection.SQL para trabajar con base de datos Para realizar una aplicación para que realice cualquier operación de lo más sencilla posible se necesita de la utilización de varias clases e interfases. por lo que tampoco se debe estar abriendo y cerrando la conexión con frecuencia. En el caso en que sea necesario proporcionar un usuario y una contraseña para acceder a la base de datos (como sucede en MySql) se utiliza el segundo de los métodos. entre las cuales se destacan: public static synchronized Connection getConnection(String url) throws SQLException public static synchronized Connection getConnection(Strin url. JDBC ofrece el paquete java. Finalmente. Mirko Manrique Ronceros Página 30 de 100 . Veamos las más importantes clases o interfases y en la medida en que se desarrolle las sesiones se detallarán más mencionando los métodos que tienen para hacer fácil el acceso a la base de datos. El objeto obtenido cuenta con varios métodos. cuando se utiliza uno de los métodos anteriormente mencionados se obtiene un objeto de tipo Connection que representa como es de esperar la conexión con la base de datos. No obstante.Universidad Nacional del Santa Facultad de Ingeniería E.P.String user. Las frases SQL se ejecutan normalmente mediante la utilización de objetos del tipo Statement. Sistemas e Informática Tecnología Cliente–Servidor con Java Paquete Java. ● La clase DriverManager . ha de tenerse en cuenta que establecer una conexión es una operación costosa.A. Los controladores JDBC tienen que ser capaces de conectar con la base de datos a partir de la información contenida en la dirección URL JDBC de la misma. por lo que son los desarrolladores los que fijan en la mayoría de los casos la sintaxis. Ing.sql en la que existen clases e interfaces muy útiles para trabajar con base de datos.

En algunos casos es interesante también fijar ciertos parámetros vinculados con la consulta que se desea realizar. Sistemas e Informática ● La interfaz Statement. Para recuperar los datos contamos Ing. Mirko Manrique Ronceros Página 31 de 100 . y devuelve el número de registros afectados por sentencias SQL devuelve un objeto de tipo ResultSet. el método executeQuery que se utiliza para ejecutar con no devuelva un conjunto de registros. como por ejemplo el tiempo que estamos dispuestos a esperar a que el gestor de la base de datos devuelva el resultado de la consulta.P.A. borrado o inserción de datos. Los métodos que se citan a continuación son algunos de los más importantes para llevar a cabo todas estas acciones.Universidad Nacional del Santa Facultad de Ingeniería E. los objetos de Tecnología Cliente–Servidor con Java tipo Statement permiten realizar consultas y efectuar operaciones de actualización. Éste contiene las filas o registros obtenidos al ejecutar una sentencia SELECT. public abstract ResultSet executeQuery(String sql) throws SQLException Ejecuta una sentencia SELECT y devuelve el resultado mediante la interfaz ResultSet public abstract int executeUpdate(String sql) throws SQLException Ejecuta una sentencia UPDATE. INSERT o cualquier otra sentencia SQL que la sentencia. public abstract void setMaxRows(int max) throws SQLException Establece el número máximo de registros que puede devolver executeQuery() public abstract int getMaxRows() throws SQLException Devuelve el número máximo de registros que puede devolver executeQuery() public abstract void setQueryTimeout(int seconds) throws SQLException Establece el tiempo en segundos que el controlador esperará hasta que el sistema gestor de bases de datos devuelva un resultado public abstract int getQueryTimeout() throws SQLException Devuelve el tiempo en segundos que el controlador esperará hasta que el sistema gestor de bases de Datos devuelva un resultado public abstract void close() throws SQLException Libera los recursos asociados a la sentencia ● La interfaz ResultSet. DELETE.

public existen otros métodos gracias a los cuales es posible recorrer los resultados guardados en el objeto de tipo ResultSet. Todos los métodos funcionan de la misma manera.A. public abstract boolean wasNull() throws SQLException Indica si el contenido de la última columna accedida es NULL SQL public abstract void close() throws SQLException Libera los recursos asociados al ResultSet Vamos a proceder a visualizar en objetos Jlist. que devuelve un valor indicando si existe otro resultado o no. 1) para Creamos un Jframe abrir un objeto nuevo formulario.Universidad Nacional del Santa Facultad de Ingeniería E. Mirko Manrique Ronceros Página 32 de 100 . Para ir avanzando por la lista de resultados utilizamos este método. public abstract String getString(int columnIndex) throws SQLException public abstract String getString(String columnName) throws SQLException public abstract int getInt(int columnIndex) throws SQLException public abstract int getInt(String columnName) throws SQLException Además.P. los datos contenidos de la tabla de Equipo. abstract int findColumn(String columnName) throws SQLException Devuelve el número de columna cuyo nombre se pasa como parámetro public abstract boolean next() throws SQLException Un objeto de tipo ResultSet puede contener más de un resultado. Sistemas e Informática Tecnología Cliente–Servidor con Java muchas opciones. Toman como parámetro el índice o el nombre del campo que se desea obtener y devuelven el dato en cuestión. Ing.

Mirko Manrique Ronceros Página 33 de 100 .Universidad Nacional del Santa Facultad de Ingeniería E.A.P. Sistemas e Informática Tecnología Cliente–Servidor con Java 2) Indicamos como nombre de clase formulario: frmverEquipos. Luegos damos click en el botón de comando Finish. Quedando el entorno de NetBeans de la siguiente manera: 3) Damos clic botón derecho sobre el diseño del formulario para cambiar el libremente. lo cual nos permitirá usar los objetos de control más Ing. Set Layout a AbsoluteLayout.

A. Sistemas e Informática Tecnología Cliente–Servidor con Java 4) Colocamos los objetos de control quedando el diseño del formulario de la siguiente manera: 5) Borramos los Items de cada objeto Jlist y colocamos los nombres a cada objeto de control. Recuerden que para eliminar los items de cada Jlist hay que hacer uso de model que se encuentra en la ventana de propiedades. Mirko Manrique Ronceros Página 34 de 100 .Universidad Nacional del Santa Facultad de Ingeniería E.P. Ing.

P. Vendría hacer los atributos de la clase frmVerEquipo. el password y el url. Sistemas e Informática Tecnología Cliente–Servidor con Java 6) A continuación procedemos a colocar la programación. Mirko Manrique Ronceros Página 35 de 100 . Posteriormente preparamos variables para indicar el nombre de la base de datos.sql (todo lo que acabamos de ver) y el paquete javax. Como la aplicación hace uso de los Jlist se tiene crear 4 objetos instanciados de la clase DefaultListModel (mayor información en la sesión 4 del curso de Programación Visual). Como tenemos establecer conexión usaremos un objeto Connection (conn). para hacer una operación de consulta usaremos un objeto Statement (st) y para almacenar los resultados de la consulta usaremos un objeto ResultSet (rs). Ing. En la segunda llave se define las variables que se van a usar.Universidad Nacional del Santa Facultad de Ingeniería E.swing para poder utilizar la clase JoptionPane para la visualización de un mensaje a través de su método ShowMessageDialog. En la tercera llave se ha diseñado un método denominado Enlace que permitirá establecer conexión con la base de datos campeonatouefa. el login.A. En la primera llave (color rojo) observamos que importamos los paquetes java.

creamos el objeto st de tipo Statement (se encuentra listo para relizar una operación) y luego ejecutamos una sentencia de consulta con select cuyo resultado va ocasionar que los datos se almacenen en el objeto rs del tipo ResultSet.A.P. Finalmente con el método next se logra desplazar a través de los registros de datos para ir llenado los objetos modelo1. Los objetos instanciados de la clase DefaultListModel deben ser vinculados a cada uno de las cajas de listas. Deseamos que los datos se muestren en los objetos Jlist al momento de la ejecución del formulario debemos programar en el método antes mencionado. modelo2. Sistemas e Informática Tecnología Cliente–Servidor con Java 7) La clase frmVerEquipo tienen un método del mismo nombre frmVerEquipo(). Mirko Manrique Ronceros Página 36 de 100 . Luego usando el bloque try{ } que por cierto sirve para interceptar errores y si lo hubiera ejecutaría lo programado en el bloque catch{ }.Universidad Nacional del Santa Facultad de Ingeniería E. Ing. modelo3 y modelo4 y de esta forma llenamos los objetos Jlist lo que nos permitirá ver en el formulario los datos de la tabla de Equipo. establecemos laconexión usando el método Enlace. esto es lo que se denomina método constructor.

Sistemas e Informática Tecnología Cliente–Servidor con Java 8) Recuerda que en la sesión anterior sólo se agregó un registro a la tabla de Equipo.P.A. Si ejecutamos la aplicación observamos lo siguiente: Ing. Si gustan ingresen más registros a la tabla de Equipo y observarán los resultados.Universidad Nacional del Santa Facultad de Ingeniería E. Mirko Manrique Ronceros Página 37 de 100 .

aunque existe un modelo de tabla predeterminado denominado la clase DefaiultTableModel. El TableModel se implementa a partir de la clase AbstractTableModel.A. añade una fila al final del modelo. ordenar las columnas. getValueAt() devuelve el dato ubicado en la posición fila y columna y removeRow() elimina una fila del modelo según posición indicada. devuelve el número de filas en la tabla.P. son posibles de realizar utilizando la clase JTable. mientras más complejo sea el requerimiento a cubrir. hasta las que permiten editar directamente el contenido de cada celda. getRowCount() devuelve el número de filas de la tabla de datos. se requerirá en igual medida utilizar más métodos o recursos de la clase. pertenecen al paquete javax. por supuesto.Universidad Nacional del Santa Facultad de Ingeniería E. personalizar su apariencia.swing. Sistemas e Informática Tecnología Cliente–Servidor con Java OBJETO DE CONTROL JTABLE EN MANTENIMIENTO DE DATOS Objeto de control JTable La presentación de datos tabulados es una de las tareas más comunes que se presentan al momento de crear interfaces gráficas. Ing. desde la simple tabla que permite únicamente mostrar el resultado de una consulta. Las propiedad más usada es model que permite definir el numero de filas y columnas. etc. Todas las tareas antes descritas. siendo los métodos más usados: setModel(). que permite vincular un modelo al obejto Jtable y getRowCount(). Mirko Manrique Ronceros Página 38 de 100 . El siguiente gráfico intenta mostrar como cada componente JTable obtiene siempre sus datos desde un modelo de tabla. El objeto Jtable como los modelos de la tabla representados a través de la interfaz TableModel. y muchas otras. Para la clase DefaultTableModel los métodos más utilizados son: AddRow().

La instrucción para la creación de dicha tabla es: create table estadio(codestadio int not null primary key auto_increment. pais varchar(20) not null. Vamos a crear la tabla de estadio en la base de datos campeonatouefa. En esta sesión haremos uso del reciente explicado objeto JTable para visualizar los datos contenidos en una tabla. la normalización que se pueda hacer a las tablas que irán creando en la base de datos campeonatouefa queda para las modificaciones que crean convenientes. Pero para eliminar datos o modificar datos se supone que los datos ya existen en la tabla de datos entonces se procedera hacer búsquedas sencillas para lograr su ubicación y proceder a su eliminación o modificación de datos. estado bit). nombre varchar(40) not null. Mirko Manrique Ronceros Página 39 de 100 . 2. Logremos establecer la conexión con la base de datos de campeonatouefa en el entorno de NetBeans. Ing.A. sede varchar(32) not null. eliminar datos correspondiente a un registro de datos como también modificar datos ya almacenados. Sistemas e Informática Tecnología Cliente–Servidor con Java Mantenimiento de Datos usando JTable como vista de datos Un mantenimiento de datos consiste en grabar datos en una tabla. Lo importante es como hacer mantenimiento de datos a una tabla. Cabe señalar que los campos referidos a la sede y al pais pudieron haber sidos tablas que se relacionen con la tabla de estadio.Universidad Nacional del Santa Facultad de Ingeniería E.P. A continuación vamos a seguir usando la base de datos de campeonatouefa ya utilizada desde la tercera sesión de aprendizaje: 1.

A continuación creamos el primer método estático denominado Enlace que devolverá un objeto del tipo Connection. Seguimos a continuación agregando más métodos a la clase Main. necesarios para la conexión con la base de datos y el enlace con la tabla de estadio.A.swing.sql y javax. java. Volvamos a la pestaña Proyects donde vamos a crear métodos en la clase Main. Este método nos ayudará establecer la conexión con la base de datos campeonatouefa. Estando dentro de la clase Main establecemos las variables conn del tipo Connection. Mirko Manrique Ronceros Página 40 de 100 . Este último paquete es necesario para el uso de los objetos del paquete swing principalmente el JOptionPane para la visualización de posibles mensajes de error. Ing.Universidad Nacional del Santa Facultad de Ingeniería E. Sistemas e Informática Tecnología Cliente–Servidor con Java 3.io. Agregamos los paquetes: java. password y url. login.P. También definimos las varibales bd. st del tipo Statement y rs del tipo ResultSet ya descritos y esplicados en las sesiones anteriores.

Finalmente se necesita tener un método denominado EnlEst que permitirá enlazarnos con la tabla de Estadio aplicando el método executeQuery() estableciendo a través del comando select a todos los campos de la tabla de Estadio solo aquellos cuyo estado es igual a 1. los estadios que están habilitados para su uso. esto quiere decir que los métodos usan excepciones (intercepcion de errores) para los erroes que se pueden presentar durante la conexión y acceso de datos. La tabla de Estadio posee realmente cinco campos. Mirko Manrique Ronceros Página 41 de 100 . Sistemas e Informática Tecnología Cliente–Servidor con Java Se crea el método sta que devolverá un objeto del tipo Statement. cada vez que Ing.P. Vamos a diseñar el siguiente formulario al cual lo llamaremos frmMantEstadio dando los nombres correspondientes a cada uno de los objetos de control dibujados. pero el último es para indicar si el estadio esta habilitado para su uso o no lo está. Básicamente permite crear el objeto del tipo Statement a partir del objeto connection a través del método createStatement().A. estom quiere decir si hacemos una elimnación se procederá a cambiar el estado a 0 (elimación lógica) y grabemos los datos de un nuevo estadio se habilitará.Universidad Nacional del Santa Facultad de Ingeniería E. 4. es decir. Si observamos en cada uno de los métodos se esta usando throws SQLException.

Ing. Importamos los paquetes java. Sistemas e Informática Tecnología Cliente–Servidor con Java 5.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 métodos que tenga. javax.P. javax.swing (para el uso de los controles visuales). Vamos a proceder a programar. colocando las siguientes líneas de código.sql (para acceder a base de datos).swing.Universidad Nacional del Santa Facultad de Ingeniería E. Mirko Manrique Ronceros Página 42 de 100 .A.

P. El método activaBotones es para habilitar o inhabilitar el uso de los botones de comando.A. Mirko Manrique Ronceros . Ing. Con el método limpiarDatos se limpia los cuadros de textos. Los métodos setSize y setLocation es para establecer el tamaño y la localización del formulario en la pantalla del computador. Sistemas e Informática Tecnología Cliente–Servidor con Java Iniciamos la construcción de la clase frmMantEstadio. estableciendo como variables o atribnbutos conn. st y rs. esto dependerá en que circunstancias nos encontremos en la ejecución de la aplicación de mantenimiento de datos de Estadios.Universidad Nacional del Santa Facultad de Ingeniería E. En el método constructor hacemos uso del método activabotones (programación que veremos luego). Como se está utilizando un objeto JTable se define la variable dtm del tipo DefaulTableModel. A partir del método setColumnIdentifiers indicamos los datos del vector titulos al objeto dtm y con el método setModel vinculamos el objeto dtm al objeto JTable denominado tablaEstadio. se establece un vector o arreglo del tipo String donde se coloca los títulos que serán de cada una de las columnas del objeto JTable.

es decir. es un método next devuelve método de la interfaz ResulSet. Se define una variable boleana encuentra para manejar la situación de éxito o fracaso de la búsqueda. su condición lógica se hará verdadero cuando encuentre el código de estadio buscado. se procederá a la conexión con la base de datos. En la variable b se coloca el valor ingresado en el cuadro de texto txtCodEst. Mirko Manrique Ronceros .A. Ing. La sentencia if que se encuentra dentro del while.Universidad Nacional del Santa Facultad de Ingeniería E. es entonces que la variable encuentra recién se hace verdadero.P. En la sentencia while utilizamos el método next que pertenece al objeto rs. haciendo que los cuadros de textos se muestren los demás datos. Sistemas e Informática Tecnología Cliente–Servidor con Java En el botón de comando btnBuscar si está habilitado después de dar clic en dicho botón. luego en la variable rs se almacenará los datos provenientes de la tabla de Estadio. El verdadero si encuentra la primera fila de información. las siguientes veces se desplaza en cada registro almacenado en el rs.

Universidad Nacional del Santa Facultad de Ingeniería E. Sistemas e Informática Tecnología Cliente–Servidor con Java Ing. Mirko Manrique Ronceros .P.A.

Se define un vector denominado datos de tamaño 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. Sistemas e Informática Tecnología Cliente–Servidor con Java El botón de comando btnVer (Ver Lista de Estadios). Pero antes de agregarlo debemos asegurarnos que no exista fila alguna de datos en el modelo dtm y por ende en la tablaEstadio. indicando la posición de la columna. podemos obtener el dato de la fila actual. Se inhabilita el cuadro de texto txtCodEst y se envía el cursor al cuadro de texto txtNom. Posteriormente se establece la conexión con la base de datos y en la variable rs se almacena los datos provenientes de la tabla de Estadio.Universidad Nacional del Santa Facultad de Ingeniería E. esto es posible ya que el método getString. El bucle de la sentencia while permite colocar en cada elemento del arreglo los datos extraidos de una fila que almacena el objeto rs. consiste en aumentar el tamaño del formulario para visualizar el objeto JTable. Se inhabilta los botones de comando a excepción de grabar ya que estamos en el momento de ingresar nuevos datos y proceder a almacenar. Ing. Con el método 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. Mirko Manrique Ronceros . Para el botón de comando btnNuevo.A. limpiamos los cuadros de textos con el método limpiarObjetos.P.

Universidad Nacional del Santa Facultad de Ingeniería E.A. Sistemas e Informática Tecnología Cliente–Servidor con Java Ing.P. Mirko Manrique Ronceros .

Sistemas e Informática Tecnología Cliente–Servidor con Java En el botón de comando btnGrabar se inicia visualizando un mensaje de confirmación para proceder a grabar. Mirko Manrique Ronceros . Si la respuesta es Sí entonces la sentencia if su condición lógica se hará verdadera y por lo tanto establecemos conexión con la base de datos campeonatouefa. esto se logra usando el método showConfirmDialog de la clase JoptionPane.Universidad Nacional del Santa Facultad de Ingeniería E. Ing.A.P. En la variable comando establecemos la instrucción con el comando INSERT para luego usar el método executeUpdate quien procederá a grabar los datos. Posteriormente se procede a cerrar la conexión con el método close del objeto connection conn. sede y pais. pasamos los datos ingresados a variables como nom.

P.Universidad Nacional del Santa Facultad de Ingeniería E. Usamos el comando UPDATE para actualizar los datos.A. En el botón de comando btnModificar. Si la respuesta es afirmativa se procede a conextarse a la base de datos y en la variable de memoria cod se almacenada el código del estadio ingresado a travñes del cuadro de texto txtCodEst. también se procede a través de un mensaje confirmar si procede la eliminación de los datos del Estadio. Una vez salvados los datos ingresados en los cuadros de textos en variables de memoria se prepara la instrucción en la variable de memoria comando. Se procede a ejecutar el comando con el método executeUpdate y se cierra la conexión con el método close. Mirko Manrique Ronceros . al igual que de grabar o eliminar se procede a confirmar a través de un mensaje si se procede a la modificación de datos. Se construye la instrucción usando el comando UPDATE. Sistemas e Informática Tecnología Cliente–Servidor con Java En el botón de comando btnEliminar. Ing. luego ejecutamos la eliminación lógica haciendo que el campo estado sea igual a cero y se cierra la conexión con la base de datos.

El botón de comando btnCerrar. habilta el cuadro de texto txtCodEst para su uso y se vuelve a su estado inicial la hablitación de los botones de comando.P. Ing. con el método dispose se cierra la ventana o formulario. Procedemos a ejecutar el formulario. Al dar clic en el botón de comando Nuevo podemos proceder a ingresar datos. Sistemas e Informática Tecnología Cliente–Servidor con Java En el botón de comando Cancelar. 6. 7.Universidad Nacional del Santa Facultad de Ingeniería E.A. Mirko Manrique Ronceros . luego de dar respuesta afirmativa se procede a limpiar los cuadros de textos. seleccionado Run File. 8. Una vez ingresado damos clic en el botón de comando Grabar. Observamos el formulario ejecutado.

P. Ing. el formulario se mostrará de la siguiente forma.Universidad Nacional del Santa Facultad de Ingeniería E. Sistemas e Informática Tecnología Cliente–Servidor con Java 9. Luego de grabar.A. Mirko Manrique Ronceros . al dar clic en el botón de comando Ver Lista de Estadios.

P. Ing. las cuales se crearán con los objetos JmenuItem. Mirko Manrique Ronceros .Universidad Nacional del Santa Facultad de Ingeniería E.A. Aquí podemos ver el árbol de herencias de las clases relacionadas con los menús: Tenemos el JmenuBar que permite iniciar el diseño del menú. Sistemas e Informática Tecnología Cliente–Servidor con Java SWING MENUS Y MANTENIMIENTO DE DATOS USANDO VARIAS TABLAS Los objetos Swing Menus En todo desarrollo de un proyecto de un sistema informático se debe construir menús que permita al usuario interaccionar con las opciones del sistema. Se crea por defecto un objeto Jmenu que permitirá a partir de este crear las opciones.

Para hacer el mantenimiento de datos de la tabla de Programación necesitaremos saber qué estadios están disponibles y cuales son los equipos participantes para el encuentro. Vamos a proceder a crear las tablas y luego a construir la aplicación: 1. Ing. Ejecutamos la instrucción. La base de datos de campeonatouefa ya tiene la tabla de Estadio. para ello crearemos la tabla de Programacion.Universidad Nacional del Santa Facultad de Ingeniería E.A. Mirko Manrique Ronceros luego aplicamos una actualización (Refresh) para . agregaremos la tabla de Equipo.P. Con las tablas de Estadio y Equipos podremos hacer la programación de los encuentros. 2. Usar varias tablas no implica que se deba hacer mantenimiento de datos a todas a la vez. Creamos las tablas de Equipo usando el entorno de NetBeans. Usando la opción Execute Command escribimos: 3. Sistemas e Informática Tecnología Cliente–Servidor con Java Mantenimiento de datos usando varias tablas Esta sesión abarca el desarrollo de un mantenimiento de datos usando más de una tabla Siguiendo la sesión anterior haremos uso de la base de datos campeonatouefa de MySql. Sólo se tendrá en cuenta la etapa eliminatoria del campeonato.

escribimos: 5.Universidad Nacional del Santa Facultad de Ingeniería E. Nuevamente usando la opción Execute Command. Mirko Manrique Ronceros . Ejecutamos la instrucción. aplicamos Refresh y luego visualizamos la nueva tabla. Tecnología Cliente–Servidor con Java Posteriormente vemos la nueva tabla en la pestaña Services 4. Sistemas e Informática visualizar la nueva tabla. Ing.P.A.

P. donde diseñaremos el siguiente menú: Ing. Sistemas e Informática Tecnología Cliente–Servidor con Java 6.Universidad Nacional del Santa Facultad de Ingeniería E.A. Vamos a crear un formulario denominado frmPrincipal. Mirko Manrique Ronceros .

Sistemas e Informática Tecnología Cliente–Servidor con Java 7. Mirko Manrique Ronceros . Diseñamos el siguiente formulario que se denominará frmProgramacionPartidos. Ing.P.A.Universidad Nacional del Santa Facultad de Ingeniería E.

de chkSuspendido y para el objeto JTable Finalmente botones comando que realizarán el mantenimiento de datos de Programación de Partidos se denominan: btnNuevo. Vamos a proceder a agregar los métodos en la clase Main que utilizaremos para el mantenimiento de datos de la Programación de Partidos. para el JComboBox referido a grupo se denomina cboGrupo. para el cuadro de texto de la hora programada se llama txtHora. btnCancelar y btnCerrar.P. Para obtener los registros de datos de aquellos encuentros que están programados Para obtener los equipos que pertenecen a un grupo indicado. btnModificar. Ing.A. para la fecha de encuentro txtFecha. para el objeto JcomboBox referido a los estadios se llama cboEstadios. btnGrabar. Sistemas e Informática Tecnología Cliente–Servidor con Java El cuadro de texto referido al numero de programación tiene como nombre txtNroPro. para el objeto JList referido al Equipo2 se denomina lstEquipo2. 8. Cada grupo debe estar conformado por 4 equipos. para los para el objeto JcheckBox referido a Suspendido se denomina se denomina tablaProgramacion. btnBuscar. para el JComboBox de la etapa de campeonato tiene como nombre cboEtapa. Mirko Manrique Ronceros .Universidad Nacional del Santa Facultad de Ingeniería E. para el objeto JList referido al Equipo 1 se llama lstEquipo1.

Mirko Manrique Ronceros . Este método nos servirá al momento de grabar o modificar datos. Para obtener el código del estadio dado el nombre del estadio. a. Ing. Esta consulta construida a partir del comando select utiliza el concepto de subconsultas.Universidad Nacional del Santa Facultad de Ingeniería E. Veamos a continuación el código de la programación que tendrá el formulario frmProgramacionPartidos. 9. Agregar los paquetes antes de la definción de la clase frmProgramacionPartidos.P.A. Este método nos servirá al momento de grabar datos. Sistemas e Informática Tecnología Cliente–Servidor con Java Para obtener el nombre del equipo dado el código del equipo Verifica si el encuentro entre un equipo y otro ya fue programado. Cuando tratemos el tema de consulta de datos se explicará la construcción de sentencias que usan varias tablas. Para obtener el código del equipo dado el nombre del equipo.

Definir los atributos o variables a usar en los distintos métodos que forma la clase frmProgramacionPartidos c. El método constructor frmProgramacionPartidos() debe quedar de la siguiente manera: Ing.P.A.Universidad Nacional del Santa Facultad de Ingeniería E. Sistemas e Informática Tecnología Cliente–Servidor con Java b. Mirko Manrique Ronceros .

Diseñamos el método llenarListas() para mostrar los posibles encuentros dado los 4 equipos que conforman un grupo. Sistemas e Informática Tecnología Cliente–Servidor con Java d.P. Ing. Construimos los métodos activaBotones y limpiarObjetos() e. f.A. Mirko Manrique Ronceros .Universidad Nacional del Santa Facultad de Ingeniería E. También se tienen el método llenarTabla() para llenar de datos en la filas del objeto JTable denominado tablaProgramacion.

como por ejemplo eliminatoria se habilitará el uso del objeto jComboBox llamado cboGrupo.P.A. Ing. Cuando se seleccione una etapa del campeonato. Sistemas e Informática Tecnología Cliente–Servidor con Java g. Mirko Manrique Ronceros .Universidad Nacional del Santa Facultad de Ingeniería E.

P. lo mismo sucederá con los demás grupos que conforma la etapa eliminatoria del campeonato.Universidad Nacional del Santa Facultad de Ingeniería E. Ing. Mirko Manrique Ronceros . No se indicará todo el código ya que codificar para cuando se seleccione el grupo A. Sistemas e Informática Tecnología Cliente–Servidor con Java h.A. Ahora vamos a proceder a programar en cuando se seleccione el grupo.

Universidad Nacional del Santa Facultad de Ingeniería E. cuya programación es la siguiente. i. Sistemas e Informática Tecnología Cliente–Servidor con Java En este último if que observamos hacemos lo mismo para el grupo B y así sucesivamente hasta el grupo H. Ing. Mirko Manrique Ronceros .A. El botón de comando Buscar es para la búsqueda de una Programación de un encuentro.P.

. Ing. Sistemas e Informática Tecnología Cliente–Servidor con Java Continuamos con la programación . Mirko Manrique Ronceros ...Universidad Nacional del Santa Facultad de Ingeniería E.A.P.

Para el botón de comando Cancelar procedemos a programar lo siguiente: Ing.P. Cuando se seleccione un equipo en la caja de lista lstEquipo1 se procederá a buscar si el encuentro ya fue programado o no. Sistemas e Informática Tecnología Cliente–Servidor con Java j. Mirko Manrique Ronceros .Universidad Nacional del Santa Facultad de Ingeniería E. k.A. Se hace lo mismo si la selección se hace del equipo en la caja de lista lstEquipo2.

A.Universidad Nacional del Santa Facultad de Ingeniería E. m. Sistemas e Informática Tecnología Cliente–Servidor con Java l. Para el botón de comando Nuevo colocamos el siguiente código: Ing.P. Mirko Manrique Ronceros ... Para el botón de comando Grabar procedmeos a codificar lo siguiente: continuamos .

Universidad Nacional del Santa Facultad de Ingeniería E. Ing. Sistemas e Informática Tecnología Cliente–Servidor con Java n. Vamos a proceder a ejecutar el formulario desde el menu. Para el botón de comando Modificar escribimos el siguiente código: 10.P.A. Mirko Manrique Ronceros .

Una vez instanciado el objeto usaremos el método preparedStatement para invocar el uso de un procedimiento almacenado. Los procedimientos almacenados son de gran utilidad para realizar tareas frecuentes en una base de datos. es sorprendente la cantidad de tiempo que se puede llegar a ahorrar al hacer uso de este mecanismo. en esta nota hablaré un poco del Manejador de Bases de datos MySQL. Mozilla Firefox. etc para indicar la posición del parámetro y el valor de dicho parámetro. funciones y procedimientos almacenados. que en los últimos años ha tenido grandes avances en su desarrollo y actualmente es uno de los DBMS más usados en sitios web y que en sus últimas versiones ha incorporado nuevas características como la implementación de las tablas. NetBeans. Mirko Manrique Ronceros . También se hará uso de los métodos setString(). Eclipse.P. procedemos a diseñar el mantenimiento de datos de la tabla de Arbitro usando procedimientos almacenados: 1. A continuación. disparadores. Creamos la tabla de Arbitro dentro de la base de datos campeonatouefa: usaremos el método executeUpdate() para ejecutar el procedimiento Ing. Interface PreparedStatement Este componente permitirá hacer uso de los procedimientos almacenados. setInt(). PostgreSQL. setDate(). PHP y MySQL por citar algunos.A. Finalmente almacenado. como pueden ser OpenOffice.Universidad Nacional del Santa Facultad de Ingeniería E. Sistemas e Informática Tecnología Cliente–Servidor con Java MANTENIMIENTO DE DATOS USANDO PROCEDIMIENTOS ALMACENADOS Procedimientos almacenados Poco a poco las empresas y muchas personas en general empiezan a mirar más hacia el Software Libre y se dan cuenta que existen excelentes alternativas a distintos programas que para ellos son de uso frecuente en otro Sistema Operativo.

Sistemas e Informática Tecnología Cliente–Servidor con Java 2. Mirko Manrique Ronceros .A.Universidad Nacional del Santa Facultad de Ingeniería E. procedemos a crear el procedimeinto almacenado sp_modificaArbitro que permitirá modificar o actualizar los datos de la tabla de Arbitro. Luego. Ing.P. 3. Una vez ejecutado la creación del procedimeinto almacenado se observará en la pestaña de Services que dicho procedmiento se ha creado. Procedemos a crear el procedimiento almacenado sp_grabaArbitro que permitirá la grabación de datos cuando se inserte un registro de datos en la tabla de Arbitro.

Sistemas e Informática Tecnología Cliente–Servidor con Java Una vez ejecutado la creación del procedimeinto almacenado se observará en la pestaña de Services que dicho procedmiento se ha creado. Ing.A. 4.Universidad Nacional del Santa Facultad de Ingeniería E. procedemos a crear el procedmiento almacenado sp_eliminaArbitro que permitirá hacer una eliminación lógica del registro de datos.P. Posteriormente. Una vez ejecutado la creación del procedimeinto almacenado se observará en la pestaña de Services que dicho procedmiento se ha creado. Mirko Manrique Ronceros .

6. Seleccionado Arbitro y dando clic botón derecho del mouse elegimos Events/Action/ActionPerformed. Luego. En el formulario frmPrincipal que contiene el diseño del menú. ubicamos la opción Arbitro dentro de Mantenimientos.P. Ing. Mirko Manrique Ronceros . Diseñamos el siguiente formulario denominado frmMantArbitro. Sistemas e Informática Tecnología Cliente–Servidor con Java 5. escribimos el siguiente código: 7.Universidad Nacional del Santa Facultad de Ingeniería E.A.

En el método constructor frmMantArbitro() preparamos las columnas del objeto JTable y damos al formulario su tamaño y ubicación dentro de la pantalla. Vamos a proceder a programar en el formulario frmMantArbitro colocando las siguientes líneas de código: Importamos los paquetes java. rs. Sistemas e Informática Tecnología Cliente–Servidor con Java 8.Universidad Nacional del Santa Facultad de Ingeniería E.A. Mirko Manrique Ronceros . En la clase Main colocar el método EnlArb().sql (para acceder a base de datos). javax. javax. st. Ing. 9.swing (para el uso de los controles visuales).swing. Preparamos las variables para el acceso de datos: conn.P.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 métodos que tenga.

Mirko Manrique Ronceros . Ing.Universidad Nacional del Santa Facultad de Ingeniería E. Sistemas e Informática Tecnología Cliente–Servidor con Java Los métodos activaBotones() permitirá gestionar el uso de los botones de comando y el método limpiarDatos() es para limpiar los cuadros de textos.P.A.

Posteriormente se establece la conexión con la base de datos y en la variable rs se almacena los datos provenientes de la tabla de Arbitro. método El botón de comando btnVer (Ver Lista de Arbitros).P. luego en la variable rs se almacenará los datos provenientes de la tabla de Arbitro.A. La sentencia if que se encuentra dentro del while. se procederá a la conexión con la base de datos. En la sentencia while utizamos el método next() que pertenece al obejto rs. su condición lógica se hará verdadero cuando encuentre el código del árbitro buscado. En la variable b se coloca el valor ingresado en el cuadro de texto txtCodArb. es un de la interfaz ResulSet. es entonces que la variable encuentra recién se hace verdadero. consiste en aumentar el tamaño del formulario para visualizar el objeto JTable.Universidad Nacional del Santa Facultad de Ingeniería E. Sistemas e Informática Tecnología Cliente–Servidor con Java En el botón de comando btnBuscar si está habilitado después de dar clic en dicho botón. El método next devuelve verdadero si encuentra la primera fila de información. Se define un vector denominado datos de tamaño 6 elementos del tipo String que servirá colocar los datos de una fila para luego agregarlo al Ing. haciendo que los cuadros de textos se muestren los demás datos. las siguientes veces se desplaza en cada registro almacenado en el rs. es decir. Se define una variable boleana encuentra para manejar la situaciçon de éxito o fracaso de la búsqueda. Mirko Manrique Ronceros .

Pero antes de agregarlo debemos asegurarnos que no exista fila alguna de datos en el modelo dtm y por ende en la tablaArbitro. Mirko Manrique Ronceros .P. 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 método getString. Con el método addRow logramos crear una fila con los datos del vector datos en el objeto dtm y como está vinculado a la tablaArbitro entonces se podrá observar los registros agregados. Ing.Universidad Nacional del Santa Facultad de Ingeniería E. podemos obtener el dato de la fila actual. Sistemas e Informática Tecnología Cliente–Servidor con Java objeto dtm que está vinculado al objeto JTable llamado tablaArbitro. indicando la posición de la columna.A.

esto se logra usando el método showConfirmDialog de la clase JoptionPane. pasamos los datos ingresados a variables como ape.Universidad Nacional del Santa Facultad de Ingeniería E. Ing. Se inhabilita el cuadro de texto txtCodArb y se envía el cursor al cuadro de texto txtNom. colocando 4 signos de interrogación que parámetros que expresa el manejo de 4 tiene dicho procedimiento. limpiamos los cuadros de textos con el método limpiarObjetos. Si la respuesta es Sí entonces la sentencia if su condición lógica se hará verdadera y por lo tanto establecemos conexión con la base de datos campeonatouefa. Con los métodos setString() del objeto instanciado pstmt indicamos la posición del parámetro y el valor del parámetro.A. nom. fecha y nac. Posteriormente se procede a cerrar la conexión con el método close del objeto connection conn. En la variable pstmt establecemos como procedimiento almacenado a sp_grabaArbitro. así por ejemplo: 1 indica ser el primer parámetro de entrada del procedimeinto almacenado sp_grabaArbitro y ape método executeUpdate() contiene que el dato apellido que el se asignará al primer parámetro. Para el botón de comando btnNuevo. Mirko Manrique Ronceros .P. Sistemas e Informática Tecnología Cliente–Servidor con Java En el botón de comando btnGrabar se inicia visualizando un mensaje de confirmación para proceder a grabar. Una vez indicado los valores a cada uno de los parámetros se hace uso del permitirá ejecutar procedimiento almacenado. Se inhabilta los botones de comando a excepción de grabar.

Si la respuesta es afirmativa se procede a conectarse a la base de datos y en la variable de memoria cod se almacenada el código del árbitro ingresado a través del cuadro de texto txtCodArb. Ing. En la variable pstmt establecemos como procedimiento almacenado a sp_eliminaArbitro. también se procede a través de un mensaje confirmar si procede la eliminación de los datos del Estadio. Mirko Manrique Ronceros . luego se usa el método setInt() para indicar el valor del parámetro y posteriormente se cierra la conexión. Sistemas e Informática Tecnología Cliente–Servidor con Java En el botón de comando btnEliminar.P.A.Universidad Nacional del Santa Facultad de Ingeniería E. colocando un signo de interrogación que expresa el manejo de un sólo parámetro.

P. El botón de comando btnCerrar. 10.A. Usamos el comando UPDATE para actualizar los datos. Se procede a ejecutar el comando con el método executeUpdate y se cierra la conexión con el método close. Una vez salvados los datos ingresados en los cuadros de textos en variables de memoria se procede a utilizar el procedimiento almacenado sp_modificaArbitro. habilta el cuadro de texto txtCodArb para su uso y se vuelve a su estado inicial la hablitación de los botones de comando.Universidad Nacional del Santa Facultad de Ingeniería E. Procedemos a ejecutar el formulario desde el menú. Ing. al igual que de grabar o eliminar se procede a confirmar a través de un mensaje si se procede a la modificación de datos. En el botón de comando Cancelar. luego de dar respuesta afirmativa se procede a limpiar los cuadros de textos. Mirko Manrique Ronceros . con el método dispose se cierra la ventana o formulario. Sistemas e Informática Tecnología Cliente–Servidor con Java En el botón de comando btnModificar.

catch. respectivamente. En el idioma de las bases de datos. En el caso del campeonatouefa al momento de ingresar los datos de las incidencias de un encuentro o partido tendremos que grabar dos registros uno de cada equipo. necesita tener algo que le indique a un usuario que se debe salvar el estado actual del programa. es decir. las transaciones son más complejas. las transaciones son bastantes sencillas de entender -simplemente implican salvar o deshacer el estado de una aplicación. Sistemas e Informática Tecnología Cliente–Servidor con Java TRANSACCIONES Y BUSQUEDAS CON BASE DE DATOS Transacciones con Base de Datos Uno concepto que causa problemas a los principiantes en el mundo del desarrollo de aplicaciones de base de datos es la idea de transacciones. cada vez que se ejecuta una sentencia SQL se abre y se cierra automáticamente una transacción..commit(). el API JDBC incluye dos métodos como parte del interface Connection. estas funciones se llaman entregar una transación y deshacer una transación. Estos dos métodos pueden lanzar SQLExceptions si algo va mal cuando la base de datos realice realmente la operación. en modo multi-usuario. o roolback(). esto quiere decir que no se debe permitir grabar las incedencias de un equipo y las incendencias del otro equipo no. Mirko Manrique Ronceros .A. Como la principal responsabilidad de una base de datos es preservar la información. para volver al estado salvado anteriormente. el estado del programa se graba llamando a con. En un entorno mono-usuario. mientras que getAutoCommit() indica si se está en modo autocommit o no. con. Sin embargo.. al estado del programa salvado anteriormente. Si no se está trabajando en modo autocommit será necesario que se cierren explícitamente las trasancciones mediante commit() si tienen éxito.Universidad Nacional del Santa Facultad de Ingeniería E.P. Es posible modificar esta opción mediante setAutoCommit(). Fundamentalmente. cuando las cosas han ido mal. una conexión funciona en modo autocommit. La demostración clásica de una transación multi-usuario es una cuenta bancaria donde una aplicación está intentando hacer un cargo mientras otra aplicación está intentando hacer un depósito en la misma cuenta. una transacción representa una unidad de trabajo lógica. por eso necesitamos envolverlos en bloques try . Por defecto. necesita una forma para indicar que una base de datos debería ignorar el estado actual y volver a atrás. Ing. Dando un objeto Connection llamado con. Para realizar estas tareas. que sólo afecta a dicha sentencia.rollback(). De igual forma.

La novedad con el uso de los procedimientos almacenados es hacer uso de parámetros de salida.Universidad Nacional del Santa Facultad de Ingeniería E. Mirko Manrique Ronceros . Creamos la tabla de Incidencias dentro de la base de datos campeonatouefa: Ing. Sistemas e Informática Tecnología Cliente–Servidor con Java Búsquedas de datos con procedimientos almacenados usando CallableStatement Para las búsquedas y/o obtenciones de datos vamos a usar procedimientos almacenados.A. En esta oportunidad usaremos el interface CallableStatement que permitirá trabajar con procedimeintos almacenados que hacen uso del comando select. procedemos a diseñar el proceso de Incidencias de un Encuentro o Partido usando procedimientos almacenados con la interfaz CallableStatement y transacciones: 1. Vamos a usar el procedimiento almacenado sp_obtenerCodEquipo: A continuación.P.

hacemos una actualización usando Refresh. Procedemos a crear el procedimiento almacenado sp_actualizaIncidencias que permitirá la grabación de datos cuando se inserte un registro de datos en la tabla de Incidencias.Universidad Nacional del Santa Facultad de Ingeniería E. hacemos una actualización usando Refresh Ing.A. Sistemas e Informática Tecnología Cliente–Servidor con Java Luego de ejecutar la sentencia. Luego de ejecutar la sentencia. 2. Observaremos la nueva tabla creada.P. Mirko Manrique Ronceros .

Universidad Nacional del Santa Facultad de Ingeniería E. Sistemas e Informática Tecnología Cliente–Servidor con Java Observaremos el nuevo procedimiento creado 3.A. Luego de ejecutar la sentencia. hacemos una actualización usando Refresh quedando la pestaña Services: Ing. Mirko Manrique Ronceros .P. Posteriormente creamos el procedimiento alcenado sp_modificaIncidencias que permitirá modificar los datos de la tabla de Incidencias.

P. Sistemas e Informática Tecnología Cliente–Servidor con Java 4. Mirko Manrique Ronceros . En la clase Main agregamos los siguientes métodos: Ing. 5. No olvidar de agregar el procedimeinto almacenado sp_obtenerCodEstadio (ver la segunda pagina de ésta sesión).A.Universidad Nacional del Santa Facultad de Ingeniería E.

Universidad Nacional del Santa Facultad de Ingeniería E.A.P. Sistemas e Informática

Tecnología Cliente–Servidor con Java

Este método nos ayudará a llenar de datos en el objeto JTable del diseño de formulario frmIncidenciasEncuentro.

Este método permitirá buscar las incidencias ocasionadas por los dos equipos de un encuentro dado el número de programación. 6. En el formulario frmPrincipal que contiene el diseño del menú, ubicamos la opción Incidencias dentro de Procesos.

7.

Seleccionando incidencias del Encuentro y dando clic con el botón derecho del mouse elegimos Events/Action/ActionPerformed.

Luego, escribimos el siguiente código:

Ing. Mirko Manrique Ronceros

Universidad Nacional del Santa Facultad de Ingeniería E.A.P. Sistemas e Informática

Tecnología Cliente–Servidor con Java

8. Diseñamos el siguiente formulario denominado frmIncidenciasEncuentro.

9.

Vamos a proceder a programar en el formulario frmIncidenciasEncuentro colocando las siguientes líneas de código:

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 métodos que tenga.

Ing. Mirko Manrique Ronceros

Universidad Nacional del Santa Facultad de Ingeniería E.A.P. Sistemas e Informática

Tecnología Cliente–Servidor con Java

Preparamos las variables para el acceso de datos: conn, st, rs. La variable graba es para saber si se va a grabar las incidencias (true) o se va a modificar las incidencias (false). Con la variable dtm es para el manejo del objeto Jtable.

Ing. Mirko Manrique Ronceros

Sistemas e Informática Tecnología Cliente–Servidor con Java En el método constructor frmIncidenciasEncuentro() preparamos las columnas del objeto JTable y llenamos de datos usando el método VistaProgramacion().Universidad Nacional del Santa Facultad de Ingeniería E.P. Mirko Manrique Ronceros . También damos al formulario su tamaño y ubicación dentro de la pantalla El método limpiarTextos() es dejar en blanco los cuadros de textos.A. Ing.

Si se encuentra las incidencias se debe tener dos registros almacenados en la variable rs referido a las incidencias del equipo local y del equipo visitante. Si no hubiera incidencias del partido programado entonces los cuadros de textos estarían habilitados para el ingreso de los datos de las incidencias. Sistemas e Informática Tecnología Cliente–Servidor con Java Programar en el evento MouseClicked ea para que el usuario seleccione una programación de partido se muestre las incidencias ocurridas en el encuentro. Con el método next() de ResultSet se accede a cada uno de los registros y con el método getString() sacamos los datos de cada fila de datos y lo asignamos a cada uno de los cuadros de textos.Universidad Nacional del Santa Facultad de Ingeniería E. Ing. Dado el número de la programación y usando el método BuscaProgIncidencias(). Programar en el evento FocusLost permitirá asignarle los goles a favor que tiene el equipo local como goles en contra al equipo visitante ó asignarle los goles en contra del equipo local como goles a favor del equipo visitante.P. Mirko Manrique Ronceros . se puede lograr encontrar las incidencias del partido.A.

Universidad Nacional del Santa Facultad de Ingeniería E. Sistemas e Informática Tecnología Cliente–Servidor con Java Ing.A. Mirko Manrique Ronceros .P.

Si la respuesta es afirmativa capturamos en la variable de memoria nropro el número de la programación. A continuación viene el inicio de una transacción.A. Si la variable pública graba viene con el valor True se procede a invocar un mensaje de conformación.Universidad Nacional del Santa Facultad de Ingeniería E.P. Ing. Mirko Manrique Ronceros . que a través del método setAutoCommit() al ponerle el valor de false dentro del paréntesis estamos indicando a la conexión que no se procederá a terminar la transacción hasta que se use el método commit(). Sistemas e Informática Tecnología Cliente–Servidor con Java V a m o s explicando lo más resaltante de la programación del botón de comando Actualizar.

P. entonces se procederá hacer casi lo mismo sino que esta véz se usará el procedimiento almacenado sp_modificaIncidencias para modificar los datos. El procedemiento almacenado a usar se llama sp_obtenerCodEquipo que posee un parámetro de entrada y otro de salida. Posteriormente se asignan a las variables los datos que se usarán para la grabación de datos. se asignan a las variables de memoria respectivas y nuevamente se procede a usar el procedimiento almacenado sp_actualizaIncidencias.A. Procedemos a ejecutar el formulario desde el menú. Mirko Manrique Ronceros . Ing. Lo mismo hacemos con las incidencias del equipo visitante. En el caso de que la variable graba sea False. con el método dispose se cierra la ventana o formulario. El valor del primer parámetro lo indicamos con el método setString() y como el segundo parámetro es de salida se hace uso del método registerOutParameter() indicando el tipo de dato que es entero. Sistemas e Informática Tecnología Cliente–Servidor con Java Viene el uso de la variable cstmt instanciado de la clase CallableStatement que permitirá ejecutar un procedimiento almacenado.Universidad Nacional del Santa Facultad de Ingeniería E. para lo cual se usará el procedimiento almacenado sp_actualizaIncidencias. 10. Luego procedemos a hacer uso del método commit() a través del objeto conn que permitirá terminar la transacción. Con el método execute() se ejecuta el procedimeinto almacenado y para obtener el valor del parámetro de salida usamos el método getInt() debido que el parámetro es de tipo entero. El botón de comando btnCerrar.

Ing. que también optimiza la ejecución de las consultas. Esta implementación mejora considerablemente el desempeño (performance) de la consulta (query). pero con mas de 3000 registros ya puede traer problemas de performance. Mirko Manrique Ronceros . En sesiones anteriores hemos contemplado el manejo del TableModel (modelo) como también sus principales métodos. Aquí hay un ejemplo completo. y retorna un arreglo con los registros.A.Universidad Nacional del Santa Facultad de Ingeniería E. Sistemas e Informática Tecnología Cliente–Servidor con Java CONSULTA DE DATOS USANDO EL OBJETO JTABLE Objeto de control JTable y métodos del interface ResulSet El objeto Jtable constituirá en el componente de visualización de los datos obtenidos a partir de una consulta realizada ala base de datos. debido que el conjunto resultado (result set) que se recorre. El ejemplo también sirve para ver como se debe hacer una consulta a la base de datos en Java. precompilando el query en la Base de Datos. Generalmente cuando se realiza una consulta a una base de datos se traen “todos” los registros. o de memoria. lo cual funciona con conjuntos de tamaño razonable. ya que implementa otras recomendaciones comunes. como la función para saltar a un registro determinado “absolute()”. como el uso de “prepared statement”. y lo bueno es que JDBC proporciona ciertas facilidades. y maneja es mucho menor. Veamos a continuación como se podría hacer una consulta a los datos de la tabla de Estadio y almacenarlos en un arreglo. Lo mejor en estos caso es paginar. y la cantidad de filas. y manteniendolo en “cache” para futuras ejecuciones.P. se le entrega el número de página. con JDBC.

Mirko Manrique Ronceros . lo más utilizados son: ● public abstract boolean next() throws SQLException Un objeto de tipo ResultSet puede contener más de un resultado. Ing. ● public abstract String getString(int columnIndex) throws SQLException ● public abstract String getString(String columnName) throws SQLException ● public abstract int getInt(int columnIndex) throws SQLException ● public abstract int getInt(String columnName) throws SQLException Para recuperar los datos contamos con muchas opciones. Toman como parámetro el índice o el nombre del campo que se desea obtener y devuelven el dato en cuestión. Para ir avanzando por la lista de resultados utilizamos este método. que devuelve un valor verdadero indicando si existe otro resultado o falso cuando ya no existe registro o fila alguna.Universidad Nacional del Santa Facultad de Ingeniería E.P. ● public abstract void close() throws SQLException Libera los recursos asociados al ResultSet.A. Todos los métodos funcionan de la misma manera. Sistemas e Informática Tecnología Cliente–Servidor con Java Con respecto al uso de los métodos de un ResultSet.

P. Mirko Manrique Ronceros . este último establece la conexión con la base de datos. Como la sentencia select tiene un signo ? que indica que falta darle un valor. Para diseñar y desarroller la aplicación seguiremos los siguientes pasos: 1. Sistemas e Informática Tecnología Cliente–Servidor con Java Consulta de Datos usando PreparedStatement En esta oportunidad vamos a utilizar el interface PreparedStatement para preparar la consulta.Universidad Nacional del Santa Facultad de Ingeniería E. También en la clase Main debe estar el método EnlEqui(): Ing. Se declara la variable cad de tipo String. Seguimos usando la base de datos campeonatouefa. cuya ejecución devolverá los resultados a un objeto ResultSet. Esta consulta lo que busca es obtener los datos de los jugadores que pertenecen a un equipo. por lo tanto el objeto conn deja de ser null y contiene la información necesaria de la conexión con la base de datos campeonatouefa. construyendo en esta oprtunidad una consulta que muestre los jugadores que pertenecen a un equipo seleccionado. cuyo resultado se almacena en el objeto ResultSet llamado rs. En la clase Main agregamos el siguiente método denominado BuscaJugEquipo: El método BuscaJugEquipo se inicia invocando al método sta() que a su vez utiliza el método Enlace(). que contiene una consulta que por cierto es una subconsulta ya que contiene más de una sola vez el uso del comando select. entonces se procede a usar el método setString() donde el parámetro nomequi contiene el valor o dato a reemplazar en ?. Se ejecuta la consulta usando el método executeQuery().A. Luego se declara y se construye una variable objeto ps del tipo PreparedStatement que a partir del objeto conn de tipo Connection se indica la sentencia select a ejecutar.

Mirko Manrique Ronceros . ubicamos la opción Jugadores por Equipo dentro de consultas. 2.A.P. Diseñamos el siguiente formulario denominado frmConsJugEqui. Ing.Universidad Nacional del Santa Facultad de Ingeniería E. En el formulario frmPrincipal que contiene el diseño del menú. Seleccionando Jugadores por Equipo y dando clic con el botón derecho del mouse elegimos Events/Action/ActionPerformed Luego escribimos el siguiente código: 3. Sistemas e Informática Tecnología Cliente–Servidor con Java Este método nos permitirá obtener los datos de los Equipos habilitados para el campeonato.

Mirko Manrique Ronceros .swing. javax. javax.A.sql (para acceder a base de datos).swing (para el uso de los controles visuales). Ing. Vamos a proceder a programar en el formulario frmConsJugEqui colocando las siguientes líneas de código: Importamos los paquetes java.P. Sistemas e Informática Tecnología Cliente–Servidor con Java 4.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 métodos que tenga.Universidad Nacional del Santa Facultad de Ingeniería E.

st. almacenamos los títulos de cada uno de las columnas. Con la variable arreglo llamado titulos de tipo String. Ing. Una vez que se tienen la conexión procedemos a ejecutar el método EnlEqui() que se encuentra en la clase Main que permitirá obtener todos los equipos. Establecemos con los métodos setSize() y setLocation() el tamaño y la localización del objeto formulario. La variable objeto dtm es del tipo DefaultTableModel para el manejo del objeto Jtable tablaConsulta.Universidad Nacional del Santa Facultad de Ingeniería E. Statement y ResultSet inicializando como null. Con el método setColumnIdentifiers() damos el arreglo titulos para establecer los titulos de cada columna que maneja el modelo dtm.P. Con el método next() se ubica al primer registro de los resultados devueltos por el método EnlEqui(). En el bloque try iniciamos con establecer la conexión con la base de datos campeonatouefa.A. Mirko Manrique Ronceros . rs del tipo Connection. de ahí cada vez que usemos el método next() se desplazará al siguiente registro. Cuando el método next() devuelva falso terminará la ejecución de la setencia repetitiva while. Con el método setmodel() vinculamos el modelo al objeto Jtable tablaConsulta. En cada desplazamiento se agregará al objeto JcomboBox denominado cboEquipos el nombre del equipo. Sistemas e Informática Tecnología Cliente–Servidor con Java Se define las variables objeto conn.

Mirko Manrique Ronceros . En la variable nomequi se almacena el nombre del equipo seleccionado del objeto JComboBox denominado cboEquipos. f e i de tipo int. En cada interación se agregará una fila en el objeto tablaConsulta a través del modelo dtm usando el método addRow(). El método getSelectedItem() obtiene el nombre del equipo elegido pero lo extrae de tipo Object y al anteponerle la expresión (String) se comporta como dato de tipo String y lo asigna a la variable nomequi.Universidad Nacional del Santa Facultad de Ingeniería E. La sentencia repetitiva while y usando el método next() del objeto rs es para ubicarnos en la primera fila y en las siguientes filas de los resultados devueltos por el método BuscaJugEquipo().P. Ing.A. Sistemas e Informática Tecnología Cliente–Servidor con Java Se declara la variable nomequi de tipo String. En el bloque try establecemos la conexión con la base de datos campeonatouefa y ejecutamos el método BuscaJugEquipo() perteneciente a la clase Main que devolverá los datos de los jugadores pertenecientes al equipo seleccionado. Se declara e instancia un arreglo denominado datos[] que permitira guardar los datos de un jugador encontrador en la variable rs. pero antes nos aseguramos que no exista fila alguna en el objeto JTable tablaConsulta.

con el método dispose se cierra la ventana o formulario. 5. Procedemos a ejecutar el formulario desde el menú.P. Ing.Universidad Nacional del Santa Facultad de Ingeniería E. Sistemas e Informática Tecnología Cliente–Servidor con Java El botón de comando btnCerrar.A. Mirko Manrique Ronceros .

Si deseas más información o libros.Este Documento Ha sido descargado desde la Web más completa en todo tipo de ebooks y Tutoriales.tk http://www.foroenigma.tk .tk Y podrás descargar muchas aplicaciones útiles.        Libros Manuales Tutoriales Cursos Programas Música Películas Grupo Enigma Electrónica Enigma Team Si algún Archivo Requiriera de Contraseña de acceso siempre será: www. entonces ingresa a: http://www.enigmaelectronica.enigmaelectronica.

Sign up to vote on this title
UsefulNot useful