Manual Swing-Java-PostgreSQL

13,660 views

Published on

Manual Swing-Java-PostgreSQL

  1. 1. UCT Manual Cliente-Servidor con Java-Swing-MySQL Basado en la herramienta NetBeans y Mysql Pablo A. Pérez Parraguez – Prof: Gustavo Donoso M. 01/01/2010
  2. 2. 1 Contenido I.-Introducción............................................................................................................................... 2 II.-Conexión por consola java........................................................................................................ 3 1.-Conexión ............................................................................................................................... 5 2.-Inserción (insert)................................................................................................................... 7 3.-Actualización (update) .......................................................................................................... 9 4.-Eliminación (delete) .............................................................................................................. 9 5.-Consulta (select).................................................................................................................. 10 II.-Conexión por Swing ................................................................................................................ 11 1.-Introducción a Swing........................................................................................................... 11 2.-Creación del proyecto......................................................................................................... 12 3.-Conexión ............................................................................................................................. 15 4.-Inserción (insert)................................................................................................................. 19 5.-Actualización (update) ........................................................................................................ 26 6.-Eliminación (delete) ............................................................................................................ 31 7.-Consulta (select).................................................................................................................. 33 IV.-Finalmente............................................................................................................................. 36 V.-Webiografia ............................................................................................................................ 37
  3. 3. 2 I.-Introducción En este manual se enseñara al lector la forma en que se realizan las actividades de tal forma que cada paso realizado en este documento será enfocado principalmente al uso directo del lenguaje, es decir, nos enfocaremos en la forma en que se deben realizar los procesos para poder realizar un correcto uso de esta herramienta. En este manual enseñaremos al lector la forma en que se escribe el código para no cometer errores, además indicaremos los comentarios necesarios para que el lector pueda saber que tareas se realizan en cada línea. Para este manual debemos considerar que en nuestra base de datos tenemos dos tablas las cuales son: persona y ciudad En nuestra tabla tenemos los siguientes valores, los cuales en nuestro sistema no modificaremos utilizaremos.
  4. 4. 3 II.-Conexión por consola java La conexión por consola es la forma directa de conexión utilizando el leguaje java para acceder a los contenidos que se encuentran Primero debemos crear el proyecto utilizando NetBeans. A nuestro proyecto lo nombraremos como ConexionDB.
  5. 5. 4 Ahora que nuestro proyecto se ha creado obtenemos como resultado la siguiente ventana. Atención!!!! Este paso es de suma importancia para continuar nuestro proyecto. Se debe agregar una librería especifica al proyecto, es decir, debemos señalar que esto se realiza para que el lenguaje que se utilizara en este proyecto sea reconocible pues de no agregar esta librería al momento de compilar el proyecto este no reconocerá la sintaxis del código escrito en mencionado proyecto. ¿Cómo agregamos la librería a nuestro proyecto? A continuación indicaremos paso a paso las actividades que debe realizar el lector para agregar la librería de MySQL.  Primero nos posicionamos en libraries y son el botón derecho “clack” seleccionamos la opción agregar librería.
  6. 6. 5  Luego buscamos la librería que deseamos agregar, que para este caso es la de Mysql.  Una ves que tenemos nuestro proyecto con todos los componentes listo procedemos a iniciar el proceso de conexión con la base de datos. 1.-Conexión Nuestro desarrollo se realizara en el archivo main.java que genera el proyecto al momento de crearlo, este archivo se encuentra de esta forma: Para hacer uso de las APIs de MySQL debemos importar el paquete perteneciente a la librería que hemos agregado previamente. Nos indica la librería local que posee nuestro proyecto.
  7. 7. 6 Ahora que tenemos la librería apropiada procedemos a ingresar el código correspondiente para realizar la conexión con la base de datos MySQL. Para ello modificamos el main de nuestra función. Y si lo ejecutamos??? En caso de que funcione… Si todo lo que se encuentra en la función try no genera errores se realiza todo normalmente. Este driver se encuentra en la librería de MySQL
  8. 8. 7 En caso de no funcionar… en caso de no funcionar se activa la función catch 2.-Inserción (insert) Ahora que ya sabemos conectarnos con nuestra base de datos procederemos a lo que realmente importa. Esta función catch solo se ejecuta cuando que ocurrido un error en la función try No te preocupes si no ves bien mas adelante explicaremos mas en detalle como hicimos esto…
  9. 9. 8 Ya sabemos hacer la conexión a la base de datos, por esa razón que no explicaremos el primer paso. Lo segundo que debemos hacer es crear un objeto de tipo Statement el cual permite enlazar la conexión a la base de datos con java, y requiere la utilización del objeto conexión para realizar el “puente” entre los dos sistemas (java y MySQL). Ahora creamos las variables correspondientes para ingresarlas a la base de datos. Ahora que ya tenemos todo listo para hacer nuestra consulta procedemos a realizarla, mostrar por consola que el proceso se ha realizado satisfactoriamente y finalmente cerrar la conexión de la base de datos. Como podemos ver utilizamos el objeto Statement para realizar el ingreso con el método execute el cual permite ejecutar código SQL. Ahora que sabemos como interactuar con la base de datos los demás pasos son mucho mas simples de realizar. Ojo: cuando ingreses valores debes considerar las comillas simples si la variable de la tabla es de tipo varchar o text, de no ser así no es necesario las comillas simples.
  10. 10. 9 En ejecución… 3.-Actualización (update) Para realizar la actualización de un registro de la base de datos solo basta indicarlo en la función execute la cual permite realizar esta operación. En ejecución... 4.-Eliminación (delete) Para realizar la eliminación de un registro de la base de datos solo basta indicarlo en la función execute la cual permite realizar esta operación. En esta ocasión he eliminado un registro diferente al que hemos modificado en el punto anterior. En ejecución…
  11. 11. 10 5.-Consulta (select) Al fin hemos llegado a lo importante de este manual, ahora procederemos a realizar consultas a la base de datos. Desde ahora debemos indicar al lector un nuevo objeto el cual permite almacenar el registro completo de la consulta que realizaremos. El objeto ResultSet permite almacenar el registro y se utiliza de la siguiente forma. En ejecución… Como podemos ver nos entrega cada registro de la tabla persona y lo mostramos con el formato que nosotros indicamos. Para mejorar aún más tus habilidades practica más ejercitando las habilidades adquiridas con anterioridad. Genera varias pruebas antes de pasar a la siguiente unidad. Estos métodos pertenecen al objeto ResultSet y retornan un parámetro en específico, por ejemplo el r.getString retorna un String mientras que el r.getInt retorna un entero. Estos valores pueden utilizarse en cualquier proceso que queramos
  12. 12. 11 II.-Conexión por Swing Ahora que ya hemos practicado bastante procederemos a introducir vistas mas amigables para el usuario para ello utilizaremos la tecnología Swing. 1.-Introducción a Swing El paquete Swing es parte de la JFC (Java Foundation Classes) en la plataforma Java. La JFC provee facilidades para ayudar a la gente a construir GUIs. Swing abarca componentes como botones, tablas, marcos, etc. Las componentes Swing se identifican porque pertenecen al paquete javax.swing. Swing existe desde la JDK 1.1 (como un agregado). Antes de la existencia de Swing, las interfaces gráficas con el usuario se realizaban a través de AWT (Abstract Window Toolkit), de quien Swing hereda todo el manejo de eventos. Usualmente, para toda componente AWT existe una componente Swing que la reemplaza, por ejemplo, la clase Button de AWT es reemplazada por la clase JButton de Swing (el nombre de todas las componentes Swing comienza con "J"). Las componentes de Swing utilizan la infraestructura de AWT, incluyendo el modelo de eventos AWT, el cual rige cómo una componente reacciona a eventos tales como, eventos de teclado, mouse, etc... Es por esto, que la mayoría de los programas Swing necesitan importar dos paquetes AWT: java.awt.* y java.awt.event.*. Ojo: Como regla, los programas no deben usar componentes pesados de AWT junto a componentes Swing, ya que los componentes de AWT son siempre pintados sobre los de Swing. (Por componentes pesadas de AWT se entiende Menu, ScrollPane y todas las componentes que heredan de las clases Canvas y Panel
  13. 13. 12 2.-Creación del proyecto Para comenzar el desarrollo con la tecnología Swing debemos crear un nuevo proyecto, es decir, crearemos una nueva interfaz de desarrollo pero esta interfaz utilizara métodos usados en la segunda unidad. Primero crear proyecto: A continuación nombramos nuestro proyecto. Como podemos ver en este caso crearemos un proyecto java de tipo aplicación de escritorio.
  14. 14. 13 Como podemos ver tenemos una amplia área para trabajar en este tipo de herramienta Las herramientas de swing solo las arrastramos hacia el área de trabajo y son ingresadas en el código automáticamente. En esta sección podemos cambiar el modo de trabajo, es decir, podemos trabajar en modo diseño que es el que actualmente vemos en la imagen anterior. Si cambiamos de modo vemos lo el código fuente que genera todo lo que vemos en el área de diseño. Ahora para motivar y enseñar al lector las diferentes posibilidades que se pueden crear con esta tecnología procederemos a ejecutar el proyecto que genera por defecto NetBeans, el resultado observable es una aplicación de ventana la cual puede ser ejecutada sin NetBeans facilitando su portabilidad en otras computadoras. Sección donde encontramos herramientas de SwingÁrea de trabajo Frame correspondiente a ventana de about. Frame principal Main de configuración principal.
  15. 15. 14 En ejecución… Pero vamos a lo nuestro, ahora comenzaremos a editar nuestro proyecto, lo primero que haremos será agregar la conexión a nuestra aplicación. Como podemos ver esta ventana posee características conocidas por cualquier usuario, tales como el menú superior y sub- menús que permiten acceder a otros lugares de la aplicación. Ojo: en la parte inferior izquierda se encuentran todos los componentes que posee nuestra venta. Sección que nos indican los componentes del proyecto Sección que nos indican los componentes de la ventana que estamos trabajando.
  16. 16. 15 3.-Conexión Ahora al trabajar en la ventana principal que tiene por nombre ConexionDBswingView.java procederemos a editar el contenido del código que esta ventana posee. Ahora procedemos a editar el contenido del mainPanel para ello hacemos doble click sobre él y accederemos al diseño único del mainPanel que corresponde al centro de la ventana principal. Ahora que nos encontramos en el panel principal, procedemos a editar el código fuente, para ello seleccionamos el modo correspondiente. Lo primero que debemos agregar a este código es la librería de mysql No olvides agregar la librería de MySQL a nuestro proyecto. mainPanel Las demás librerías corresponden a las de la tecnología Swing y son las que nos permiten agregar la parte visual de nuestra aplicación. (Ventanas, botones, menús, etc.)
  17. 17. 16 Ahora procederemos a iniciar la conexión con el servidor MySQL, para ello el lector puede apreciar que hemos creado variables globales en el proyecto para que puedan ser accedidas desde cualquier punto. También el lector debe darse cuenta que en el constructor de la aplicación se inicializan las variables, principalmente la variable conexión que es la que se debe inicializar al comienzo de la ejecución del programa. No olvidar que este código se agrega después del initComponents() , no se elimina código posterior a esto. Ahora que tenemos conexión con el servidor procederemos a realizar las mismas actividades de la unidad anterior. Lo primero que debemos hacer es posicionarnos en el modo de diseño y agregar un menú más interactivo con el usuario. En la barra de herramientas que encontramos en la derecha del área de trabajo tenemos las diferentes posibilidades de menús disponibles para utilizar, para este caso utilizare el menú basado en paneles con pestañas, es decir, agregaremos de la sección swing container
  18. 18. 17 La forma en que debemos agregar el Tabbed Pane es muy fácil, solo lo arrastramos hacia el mainPanel y posteriormente debemos extenderlo hasta cubrir todo el panel. Ahora agregaremos 3 paneles para ello nos posicionamos en el área inferior izquierda en el swing Tabbed Pane y al hacer clack seguimos la siguiente secuencia que indicaremos en la imagen presentada a continuación.
  19. 19. 18 Al hacer esta operación tres veces se generara el siguiente espacio de trabajo. Para editar los nombres de los diferentes paneles solo basta hacer clack en los paneles y seleccionar la opción edit text. En mi aplicación he escogido los siguientes nombres:
  20. 20. 19 4.-Inserción (insert) Ahora procederemos a trabajar en el panel que lleva por nombre “Agregar”, en el cual lo modificaremos hasta que quede de la siguiente forma. Ahora que ya tenemos los componentes agregado a nuestro panel debemos asignarle los nombres de variables correspondientes para agregar posteriormente su contenido a la consulta mysql. Para ello al hacer clack cambiamos el nombre del contenedor por uno que podamos identificar mas adelante. Luego en la siguiente ventana agregamos el nuevo nombre a la variable. Para modificar este panel hemos utilizado componentes como Label, Text fiel, combo box, radio buton y button. Ojo: Si utilizamos el botón Preview Dising podemos ver como quedara nuestro proyecto sin la necesidad de ejecutar el programa.
  21. 21. 20 Esto debemos hacerlo con las variables nombres, apellidos, rut, fecha de nacimiento y dirección. Ahora configuraremos las variables sexo y ciudad, primero analizaremos la variable sexo. Con la configuración actual que poseen estos radiobutton pueden ser seleccionados ambos botones a la vez lo que por lógica no puede ser factible ya que el sexo de una persona es único. Primero debemos agregar un nombre a los dos botones, los cuales en nuestro proyecto llamaremos M y F, de esta forma podremos saber que botón hace referencia a que valor. Una vez que los botones cuentan con un nombre de variable comprensible por el lector, el lector debe agregar un nuevo objeto al proyecto el cual lleva como nombre button group, este elemento se encuentra en el lado derecho del área de trabajo. Para agregar este componente al proyecto debemos arrastrarlo hasta el panel, no te preocupes si no aparece nada en el panel pues este objeto no es visible para el usuario pero si para el programado, por esto que lo encontraras en inspector de componentes del proyecto. A este componente debemos cambiar su nombre de variable por sexo de la misma forma en que lo realizamos anteriormente con las otras variables, solo que para cambiar el nombre debemos hacer clack en el objeto en el inspector de componentes.
  22. 22. 21 Ahora para poder configurar que los botones M y F pertenezcan al grupo correspondiente de la variable sexo, debemos acceder al código fuente de la variable sexo, esta operación se realiza de la siguiente forma, al hacer clack sobre la variable sexo debemos ingresar donde dice customiza code y nos encontraremos con una ventana de configuración de dicha variable Una vez que nos encontramos en la ventana de configuración observaremos la siguiente línea de código: Esta línea no la midificaremos, lo único de que debemos realizar en esta ventana es agregar dos líneas de códigos generando lo siguiente: Como se puede observar lo que se ha realizado es añadir a la variable sexo los componentes del botón Masculino (M) y Femenino (F). Ahora si realizamos la vista previa de nuestra ventana podremos observar que solo podremos seleccionar una de las dos opciones en nuestro formulario.
  23. 23. 22 Ahora configuraremos la variable ciudad la cual como se puede observar es un combobox, es decir, consta de una lista de posibilidades que el usuario puede seleccionar, por defecto muestra lo siguiente: El lector puede acceder al código fuente de este combobox y ver donde se genera la lista de contenidos. Una buena práctica en programación es dejar seleccionado uno de estos botones por defecto, es decir, dejar uno de los dos botones seleccionados para que en caso de que el usuario que ingrese a la persona a la base de datos no seleccione uno de las dos opciones no se genere un error. Para dejar uno de los dos botones seleccionado debemos ir al código del botón que queremos seleccionar y agregar lo siguiente. Si hacemos esto el aparecerá siempre seleccionado nuestro botón, en este caso el sexo masculino.
  24. 24. 23 Pero el contenido que debe tener esta lista debe corresponder a lo que tenemos en nuestra base de datos en nuestra tabla ciudad, para ello modificaremos su contenido con el siguiente código. Como se puede ver en l parte superior de la imagen hemos comentado la sección dende se generan los ítem por defecto de la lista desplegable (combobox). En ejecución!!!
  25. 25. 24 Ahora procederemos a realizar el ingreso de los datos del formulario en nuestra base de datos, para ello utilizaremos el botón agregar al cual le asignaremos un “evento” el cual se ejecutara al momento de hacer click sobre el. Para agregar la acción al botón debemos hacer clack sobre el y presionar donde dice eventactionactionPerformed. Esta acción no llevara hacia el código fuente del programa en la sección creada para realizar al momento de presionar el botón agregar. Dentro de esta función debemos agregar el siguiente código para ingresar los datos del formulario a nuestra base de datos.
  26. 26. 25 A continuación explicaremos brevemente el código agregado en la función. El lector debe saber que el try{..}catch{..} es la función que siempre que realizamos consultas a la base de datos debe estar presente en nuestro código ya que nos permite controlar los errores que se produzcan durante el periodo de ejecución de nuestra aplicación. Lo primero que hacemos es buscar el id de la ciudad seleccionada por el usuario, para ello con el texto presente en el combobox hacemos una consulta a la base de datos para después contar con el id correspondiente. Otro paso importante que hacemos en la generación de l variable correspondiente al sexo de la persona. Ahora que tenemos las variables listas procedemos a ingresar a la persona a nuestra base de datos: Una vez que ingresamos el registro al sistema eliminamos todos los campos ingresados previamente para un nuevo ingreso:
  27. 27. 26 5.-Actualización (update) Para realizar una actualización debemos formar la siguiente ventana, la cual como podemos apreciar posee un combobox que contendrá la lista de todas las personas de nuestra base de datos para su posterior modificación. Primero se debe generar el combo-box al igual que en la sección anterior pero en este caso con los datos de las personas. Dejamos al lector la opción de investigar cómo generar una ventana de alerta para avisar al usuario del ingreso de la persona al sistema de una forma mas práctica. Una ayuda para el lector:
  28. 28. 27 Ahora que poseemos la lista con las personas debemos hacer el paso de la generación de los campos para la modificación de los datos de la persona seleccionada. OJO: En esta ventana los campos no pueden llevar el mismo nombre que en la ventana de ingresar, es por esta razón que los nombraremos de esta forma: Por ejemplo para el rut lo llamaremos rut_2 Para el campo nombres la variable se llamara nombres_2 Espero hayas entendido.
  29. 29. 28 Ahora debemos hacer que al momento de seleccionar a una persona se actualicen los datos de nuestra ventana para ser modificados por el lector. Esto se hace con la acción actionPerformed visto anteriormente en la utilización del botón en la unidad anterior. Ahora en la sección indicada por nuestro método debemos modificar cada contenido de nuestro formulario de actualización:
  30. 30. 29 Pero no te alarmes si no comprendes nuestro código a continuación explicaremos las líneas que puedan significar dificultades para ti. La primera línea la modificamos para no editarla pues el usuario no podrá modificar el rut de una persona ya que esta acción no es una buena práctica, lo correctos es eliminar al usuario e ingresar nuevamente los datos con el rut correcto. En la segunda línea agregamos el rut capturado del objeto combo-box, y posteriormente con el mismo objeto capturado hacemos una consulta a la base de datos. En las cuatro primeras no hacemos nada mas que agregar los datos correspondientes a la consulta realizada con anterioridad en los campos correspondientes a nuestro formulario. Esta línea es importante ya que lo que realizamos es almacenar el valor correspondiente a ciudad a la que pertenece nuestra persona, se puede observar que le sustraemos una unidad ya que en el JCombo-Box del formulario de actualización la lista se numera desde el número cero. En estas líneas comparamos el valor existente en los datos de la persona y seleccionamos el que corresponda de nuestro formulario.
  31. 31. 30 Como podemos apreciar realizamos una nueva consulta la que se centra en los datos de la tabla ciudad y cuando son agregados al JCombo-Box correspondiente a ciudad_2 seleccionamos el valor correspondiente a nuestra persona y que se almaceno en la variable ciu anteriormente. Ahora procederemos a realizar la actualización de los datos, para ello utilizaremos la acción dada por el botón actualizar presente en nuestro formulario. La acción de actualizar se realiza de la misma forma en que ingresamos a la persona en la opción anterior solo que en este caso realizamos la actualización de los datos de la persona.
  32. 32. 31 6.-Eliminación (delete) Ahora para eliminar un registro del sistema en la ventana de edición agregaremos el botón eliminar, el cual permitirá al usuario borrar a la persona ingresada en la base de datos. Ahora ingresamos el evento correspondiente al presionar el botón eliminar: Estas líneas hacen referencia a dos ventanas de dialogo las cuales realizan una interacción más didáctica con el usuario que controla nuestra aplicación: ¿Pero en este ejemplo hay unas líneas que no comprendo? Una ventana de dialogo es aquella ventana de confirmación o de alerta que aparece por lo general en los Navegadores.
  33. 33. 32 Para realizar una de estas ventanas basta seguir los siguientes pasos: Primero agregar un componente llamado JDialog a nuestra aplicación: A este componente le llamaremos Alerta el cual será una ventana de confirmación con dos opciones, esta ventana deberá poseer el siguiente formato: Como se puede observar posee dos botones y un texto, cada botón posee una acción en especial la que realizara una interacción distinta con el usuario. Primero el botón NO: El botón NO, posee una única acción la cual es cerrar la ventana de dialogo. Ahora el botón SI:
  34. 34. 33 Se puede observar que realizamos dos procesos al presionar el botón, el primero es modificar una variable previamente generada transformándola en true, mientras que el segundo proceso es ocultar la ventana de dialogo al usuario, esto lo hacemos para no cerrar la ventana y así no perder nuestra variable opción. Una vez que hemos utilizado la variable opción procedemos a cerrar nuestra ventana como se muestra a continuación: 7.-Consulta (select) En esta unidad utilizaremos un componente llamado JTABLE el cual nos permitirá agregar los registros a una tabla tipo “Excel” lo que nos permitirá una visualización más amigable para el usuario. Ahora debemos modificar el contenido que posee nuestra tabla. Como ingeniero debes aprender como ingresar más parámetros al momento de generar las ventanas de diálogos para poder agregar el texto que tú quieras a la ventana sin la necesidad de tener un texto único para cada aplicación. Sector donde se genera el arreglo correspondiente a los datos de la tabla Sector donde indicamos los títulos de la tabla de datos
  35. 35. 34 Ahora mostraremos el código final para poder mostrar los datos de la tabla persona a nuestro usuario: No te preocupes si no entiendes el código expuesto anteriormente, a continuación explicare las líneas para mejorar tu comprensión al respecto.
  36. 36. 35 Creación de arreglo de datos: Sin duda existen más formas de realizar este proceso, pero he escogido esta forma para ilustrar al lector de mejor forma cómo podemos manipular nuestras consultas para generar los resultados esperados. En la primera línea realizamos una consulta básica a nuestra base de datos y generamos una variable fila la cual nos indicara cuantas filas posee nuestra consulta. Una vez que tenemos la cantidad de filas procedemos a la creación de un objeto de tipo Object al cual asignamos la cantidad de filas seguido por las columnas que nosotros utilizaremos mas adelante. Ahora procedemos a la inserción de cada registro en nuestro arreglo: Como podemos ver a cada columna agregamos un dato en específico. El proceso de averiguar cuantas filas posee una determinada consulta se puede realizar con una función llamada r.getRow() la cual entrega la cantidad de filas de la consulta
  37. 37. 36 Finalmente la inserción del objeto lista en nuestra tabla: Se puede observar que hemos agregado a cada columna de nuestra tabla en nombre correspondiente a cada datos agregado en nuestro Object lista. Ahora que posees las habilidades necesarias para interactuar con JAVA, SWING y BASE DE DATOS. Estas listo para pasar al siguiente nivel en este manual. IV.-Finalmente
  38. 38. 37 V.-Webiografia http://www.chuidiang.com/java/mysql/mysql-java-basico.php http://paraisolinux.com/conectar-java-con-mysql/ http://pedrorojas.over-blog.es/pages/Conexion_Java_Mysql_Ponencia_Flisol- 1353448.html http://www.k4ch0.org/blog/2009/07/21/conectar-mysql-con-java-usando-jdbc/

×