Cone Xi on Mysql Con Java 225

17
Conexión a MySQL con Java Ivan Elizalde Hernandez Utilización de JBuilder 9 para el desarrollo de una aplicación con conexión a una base de datos en MySQL

Transcript of Cone Xi on Mysql Con Java 225

Page 1: Cone Xi on Mysql Con Java 225

Conexión a MySQL con Java

Ivan Elizalde Hernandez

Utilización de JBuilder 9 para el desarrollo de una aplicación con conexión a

una base de datos en MySQL

Page 2: Cone Xi on Mysql Con Java 225

Conexión a MySQL con Java Introducción

OBJETIVO: Este manual tiene como objetivo el desarrollo de una aplicación capaz de conectarse a una base de datos en MySQL a través del driver JDBC Connector/J y mostrar los datos obtenidos en pantalla con ayuda del entorno de desarrollo de Jbuilder 9 con el que lograremos una Interfaz Grafica más agradable para el usuario. ALCANCE: En este manual se hace uso de un driver JDBC tipo 4 (Connector/J) para realizar la conexión a una base de datos hecha con MySQL, aunque con los driver correctos, esta misma aplicación podría ser utilizada para conectarse a múltiples manejadores de base de datos como Microsoft SQL Server, Oracle, SyBase, Informix, etc. Aquí se mostrara de forma sencilla la forma de conectarse a una base de datos y extraer información de una tabla, pero con la utilización de las herramientas de base de datos que incorpora Jbuilder 9 es posible realizar aplicaciones mas complejas con mayor numero de consultas y accesos a diferentes bases de datos y diferentes tablas. SUPUESTOS Para el desarrollo correcto de esta aplicación se supone que se cuenta con los siguientes requisitos:

• Instalado el ambiente de desarrollo JBuilder 9 • Instalado y configurado el Driver JDBC Connector/J • Instalado y configurado el servicio MySQL • Creada una base de datos de prueba para realizar la conexión • Una cuenta de usuario y contraseña para conectar a alguna base de

datos

Autor: Ivan Elizalde Hernandez 1 de 17

Page 3: Cone Xi on Mysql Con Java 225

Conexión a MySQL con Java Primeros Pasos

CREACION DEL PROYECTO El primer paso para el desarrollo de una aplicación en Jbuilder es la creación de un proyecto, así que iniciamos JBuilder y nos aparece el entorno de desarrollo, similar a la Figura 1.

Figura 1: Entorno de desarrollo de JBuilder 9

Ahora elegimos del menú Archivo la opción Nuevo, nos mostrara el siguiente cuadro de dialogo, elegimos la opción Proyecto de la ficha Proyecto:

Figura 2: Galería de Objetos

Autor: Ivan Elizalde Hernandez 2 de 17

Page 4: Cone Xi on Mysql Con Java 225

Conexión a MySQL con Java Primeros Pasos

Enseguida aparecerá el asistente para proyectos, el cual consta de tres pasos, en el primer paso colocaremos el nombre de nuestro proyecto, en este caso pondremos “ConexionMySQL” y pulsaremos sobre Finalizar ya que no es necesario modificar nada más en los siguientes pasos.

Figura 3: Asistente para Proyectos (Paso 1)

Autor: Ivan Elizalde Hernandez 3 de 17

Page 5: Cone Xi on Mysql Con Java 225

Conexión a MySQL con Java Primeros Pasos

GENERAR LA APLICACION Una vez creado el proyecto es necesario añadirle una aplicación con la ayuda del asistente para aplicaciones, el cual crea archivos de código fuente .java que se añaden a nuestro proyecto. Para añadir una aplicación al proyecto nuevamente abrimos la Galería de objetos (Figura 2), seleccionando la opción Nuevo del menú Archivo. Ahora seleccionamos la ficha General y elegimos el icono Aplicación y damos clic en el botón Aceptar. Nos mostrara el Paso 1 del Asistente para Aplicaciones en el cual no es necesario modificar nada, pulsamos el botón siguiente para avanzar al siguiente paso del asistente. En el Paso 2 del Asistente para aplicaciones (Figura 4) podemos configurar algunas opciones para modificar el aspecto de nuestra aplicación, para este ejemplo no es necesario utilizar todas las opciones de personalización del diseño de la aplicación.

Figura 4: Asistente para aplicaciones (Paso 2)

Autor: Ivan Elizalde Hernandez 4 de 17

Page 6: Cone Xi on Mysql Con Java 225

Conexión a MySQL con Java Primeros Pasos

No es necesario cambiar nada en el Paso 3 del Asistente para aplicaciones así que pulsamos finalizar para terminar con el asistente, ahora el entorno de desarrollo mostrara una apariencia similar a la siguiente:

Panel de Componentes Inspector de Propiedades

Panel de Contenido Explorador de Proyecto Estructura de Objetos

Figura 5: Entorno de Desarrollo

Autor: Ivan Elizalde Hernandez 5 de 17

Page 7: Cone Xi on Mysql Con Java 225

Conexión a MySQL con Java Acceso a los datos

AÑADIR EL COMPONENETE DATABASE Si no podemos ver el entorno de desarrollo mostrado en la figura 5 pulsamos sobre la pestaña diseño del panel de contenido con lo que se cargara el diseñador de la aplicación. En la parte superior podemos observar el Panel de Componentes, accedemos ala pestaña Data Express y damos un clic sobre el componente Database.

Figura 6: Panel de Componentes (Pestaña Data Express) Ahora damos un clic sobre el árbol de componentes del panel de estructura, con lo que se añadirá el componente database debajo del nodo Accesos a datos.

Con esto ya tendremos creado un componente el cual servirá para configurar el acceso a la base de datos a la cual se conectara la aplicación. Ahora será necesario iniciar el servicio de MySQL para poder realizar las pruebas de conexión correctamente así como comprobar que las consultas que hagamos a la tabla sean correctas. Figura 7: Panel de Estructura

Muy bien, ahora necesitamos configurar el componente database1 para ello lo seleccionamos de el árbol de componentes y en el inspector de propiedades nos aparecen todas las propiedades que podemos configurar de este componente, seleccionamos la propiedad connection y pulsamos en el icono (…) para acceder a las opciones de configuración. Figura 8: Propiedades de database1

Autor: Ivan Elizalde Hernandez 6 de 17

Page 8: Cone Xi on Mysql Con Java 225

Conexión a MySQL con Java Acceso a los datos

Configuramos la propiedad Connection con los siguientes valores:

• Controlador: com.mysql.jdbc.Driver. Este el nombre del controlador JDBC que utilizamos para realizar la conexión (Conector/J). Es necesario que ya se encuentre instalado y configurado para que funcione correctamente.

• URL: jdbc:mysql://localhost/test. Aquí es la ruta de la base de datos en donde se encuentra la tabla a la que quieres tener acceso. En este ejemplo utilice la base de datos test que viene por defecto al instalar MySQL, pero puede ser cualquier otra que ya se haya creado.

• Nombre de usuario: Aquí pones el nombre de usuario con el que te conectes a tu base de datos

• Contraseña: Es la contraseña de acceso a la base de datos, si no tienes contraseña solo dejas el cuadro vacío.

Una vez hecho esto, el cuadro de dialogo connection debe ser igual a este:

Figura 9: Opciones de la propiedad connection

Ahora pulsamos el botón Probar Conexión para comprobar que las configuraciones sean correctas, nos debe aparecer el mensaje “Correcto”. Si no es así tendremos que asegurarnos de que escribimos los valores correctamente, también es necesario asegurarnos que la base de datos existe y que podemos tener acceso a ella

Figura 10: Prueba de conexión correcta

Autor: Ivan Elizalde Hernandez 7 de 17

Page 9: Cone Xi on Mysql Con Java 225

Conexión a MySQL con Java Acceso a los datos

AÑADIR EL COMPONENETE QUERYDATASET Para poder realizar las consultas a la base de datos que acabamos de configurar es necesario añadir un componente QueryDataSet de la pestaña Data Express mostrada en la figura 6.

Figura 11: Componente QueryDataSet

Damos un clic sobre el componente QueryDataSet y enseguida damos un clic sobre el árbol de componentes, con esto se añadirá el componente QueryDataSet1 en el nodo Acceso a Datos justo abajo del componente database1. Figura 12: Componente QueryDataSet agregado en

el árbol de componentes Igual que con el componente database1 necesitamos configurar el QueryDataSet1, para esto pulsamos sobre el componente y en el inspector de propiedades seleccionamos la propiedad query y damos clic sobre el botón de puntos suspensivos.

Figura 12: Propiedad Query de QueryDataSet1

Autor: Ivan Elizalde Hernandez 8 de 17

Page 10: Cone Xi on Mysql Con Java 225

Conexión a MySQL con Java Acceso a los datos

En el cuadro de dialogo Query que se acaba de abrir necesitamos configurar los siguientes valores:

• Base de datos: database1. Es el componente en el cual ya hemos configurado los parámetros de conexión a una base de datos.

• Sentencia SQL: Aquí podemos especificar cualquier sentencia SQL que

nos sirva para recuperar datos de una o mas tablas que se encuentren en la base de datos especificada en el componente database1, para este ejemplo yo utilice una muy común: SELECT *FROM alumnos. Alumnos es una tabla muy sencilla con apenas 3 campos, pero que nos servirá para este ejemplo.

Una vez configurado los valores pulsamos el botón Probar consulta y nos aparecerá el mensaje “Correcto”, de no ser así, revisar que se haya escrito correctamente la consulta y que la tabla a la que hacemos referencia exista.

Figura 12: Cuadro de dialogo Query

Por ultimo en el panel de componentes, de la pestaña Mas dbSwing añadimos el componente DBDisposeMonitor, de la misma forma que añadimos los componentes anteriores, y escogemos del inspector su propiedad dataAwareComponentContainer y asignamos el valor this. Esto hará que se cierra el acceso a nuestra base de datos al cerrar la ventana de la aplicación. Ahora tenemos listo el acceso a los datos para nuestra aplicación, ahora le daremos una interfaz grafica para mostrar los datos obtenidos de la tabla Alumnos.

Autor: Ivan Elizalde Hernandez 9 de 17

Page 11: Cone Xi on Mysql Con Java 225

Conexión a MySQL con Java Interfaz Grafica

AÑADIR COMPONENTES DBSWING Es la hora de diseñar un Interfaz de Usuario para nuestra aplicación de bases de datos con ayuda de los componentes dbSwing que nos proporcionan una forma rápida de crear una interfaz agradable para mostrar los datos obtenidos de una base de datos. Lo primero que debemos hacer es seleccionar la pestaña dbSwing del panel de componentes:

Figura 13: Panel de componentes (Pestaña dbSwing)

El primer componente que añadiremos será un JdbTable, el cual será utilizado para mostrar los datos obtenidos de la consulta en forma de tabla, similar a las hojas de cálculo de Excel. Damos un clic sobre el componente TableScrollPanel y pulsamos sobre contentPane del árbol de componentes para añadirlo a nuestra aplicación aparecerá el componente TableScrollPanel1 como un nodo en el árbol de componentes.

Figura 13: Componente TableScrollPanel Ahora seleccionamos el componente JdbTable del panel de componentes y pulsamos sobre tableScrollPanel1 del árbol de componentes, con esto aparecerá jdbTable1 como un nodo bajo tableScrollPanel en el árbol de componentes.

Figura 14: Componente JdbTable El panel de estructura debe tener un aspecto similar al siguiente:

Figura 15: Componentes dbSwing en el árbol de componentes

Autor: Ivan Elizalde Hernandez 10 de 17

Page 12: Cone Xi on Mysql Con Java 225

Conexión a MySQL con Java Interfaz Grafica

Ahora seleccionamos el componente JdbTable1 del árbol de componentes y seleccionamos la propiedad dataset en el inspector de propiedades y asignamos el valor queryDataSet1. Al hacer esto se muestran los datos de la consulta en el panel de contenido:

Figura 16: Datos recuperados de la consulta AÑADIR UNA BARRA DE NAVEGACION Para movernos a través de los registros obtenidos de la consulta necesitaremos una barra de navegación (si es que el resultado de la consulta genera muchos registros) para esto primero necesitaremos añadir un componente llamado JPanel que se encuentra en la pestaña Contenedores Swing.

Figura 17: Panel de componentes (Pestaña Contenedores Swing) Damos clic en el componente JPanel y pulsamos sobre el nodo contentPane del árbol de componentes, y asignamos a la propiedad layout del componente Jpanel1 el valor FlowLayout.

Autor: Ivan Elizalde Hernandez 11 de 17

Page 13: Cone Xi on Mysql Con Java 225

Conexión a MySQL con Java Interfaz Grafica

Ahora abrimos la pestaña Más dbSwing del panel de componentes y damos un clic sobre el componente JdbNavField y pulsamos sobre el nodo JPanel1 del árbol de componentes. Este componente nos permite realizar búsquedas de cadenas que coincidan con algún cambo de nuestra tabla. En la propiedad columnName asignaremos el nombre del campo en el que se quieran realizar las búsquedas, en este ejemplo asignare el campo Nombre. En la propiedad preferredSize asignaremos el valor 125, 21. En la propiedad dataset asignamos el valor QueryDataSet1. Ahora seleccionamos la pestaña Swing del panel de componentes y damos clic en el componente JLabel y pulsamos sobre el nodo jPanel1 del árbol de componentes.

Figura 18: Panel de componentes (Pestaña Swing) Seleccionamos el componente jLabel1 y asignamos el valor Buscar a la propiedad Text. Ahora en la pestaña dbSwing del panel de componentes seleccionamos el componente JdbNavToolBar y pulsamos sobre jPanel1 del árbol de componentes.

Figura 19: Componente JdbNavToolBar

En la propiedad dataset asignamos el valor QueryDataSet1. Ahora talvez sea necesario redimensionar la aplicación para poder ver todos los componentes de la barra de navegación. Hasta ahora nuestra aplicación debe tener una apariencia similar a esta:

Figura 20: Apariencia de la aplicación hasta el momento

Autor: Ivan Elizalde Hernandez 12 de 17

Page 14: Cone Xi on Mysql Con Java 225

Conexión a MySQL con Java Interfaz Grafica

Por ultimo añadiremos un componente llamado JdbStatusLabel el cual nos servirá para mostrar información del registro actual y la operación que se este realizando. Para esto lo primero que hacemos es agregar otro componente JPanel en el nodo contentPanel del árbol de componentes, de la misma forma que agregamos el anterior. En la propiedad constraints del jPanel2 asignamos el valor South para que se situé en la parte inferior de nuestra aplicación. Ahora seleccionamos de la pestaña dbSwing el componente JdbStatusLabel y hacemos clic en el componente jPanel2

Figura 21: Componente JdbStatusLabel En la propiedad dataset asignamos el valor QueryDataSet1. Ahora solo falta guardar todo el proyecto, del menú Archivo escogemos la opción: Guardar proyecto “ConexionMySQL.jpx” Y en la barra de herramientas pulsamos el botón: Ejecutar Proyecto, para mirar el resultado final de la aplicación.

Figura 22: Botón Ejecutar Proyecto El resultado final deberá ser parecido al siguiente:

Figura 23: Resultado final

Autor: Ivan Elizalde Hernandez 13 de 17

Page 15: Cone Xi on Mysql Con Java 225

Conexión a MySQL con Java ANEXOS

CREAR UN EJECUTABLE NATIVO Por ultimo podemos crear un ejecutable nativo con extensión .jar para poder ejecutar la aplicación desde la consola desde cualquier sistema operativo que tenga instalada una maquina virtual de Java.

Una vez abierto nuestro proyecto abrimos el menú Asistentes y elegimos la opción: Creador de ejecutables nativos. Esto abrirá un asistente que nos guiara paso a paso a través de este proceso.

Figura 24: Menú Asistentes

El asistente consta de 7 pasos en los cuales se configuran muchas opciones para incluir en nuestro ejecutable nativo, pero por ahora solo veremos las mas básicas, así que pulsamos siguiente hasta llegar al paso 3, donde escogeremos la opción: Incluir siempre todas las clases y recursos para las bibliotecas Data Express y dbSwing

Figura 25: Creador de ejecutables nativos (Paso 3 de 7)

Autor: Ivan Elizalde Hernandez 14 de 17

Page 16: Cone Xi on Mysql Con Java 225

Conexión a MySQL con Java ANEXOS

Pulsamos siguiente hasta llegar al paso 6 de 7 donde podremos escogemos los archivos ejecutables que se generaran a partir del archivo .jar, no es necesario marcar todos, ya que el archivo .jar es capaz de ser ejecutado para cualquiera de los sistemas operativos mencionados.

Figura 25: Creador de ejecutables nativos (Paso 3 de 7)

Pulsamos Finalizar para terminar el Asistente. El archivo .jar se guarda dentro de la carpeta donde se guarda el todo el proyecto ubicamos el archivo y lo copiamos al directorio bin de nuestro JDK y desde la línea de comandos accedemos a la ruta del directorio bin y ejecutamos el siguiente comando.

Java –jar ConexionMySQL.jar

Figura 25: Ejecución de la aplicación desde línea de comandos

Autor: Ivan Elizalde Hernandez 15 de 17

Page 17: Cone Xi on Mysql Con Java 225

Conexión a MySQL con Java ANEXOS

INSTALAR EL CONTROLADOR CONNECTOR/J Si no se ha instalado nunca un driver JDBC como el Connector/J podemos seguir estos sencillos pasos.

• Bajar el driver de la página: http://dev.mysql.com/downloads/connector/j/3.1.html

• Descomprimir el archivo en alguna carpeta de nuestro disco duro. • El archivo que nos interesa es el llamado:

mysql-connector-java-3.0.16-ga-bin.jar • Copiamos este archivo en la carpeta jdk1.4/bin • Copiamos este archivo en la carpeta jdk1.4\jre\lib\ext

Con esto ya se podrá tener acceso al driver desde las aplicaciones creadas en Java. Nota: Si se siguen estos pasos los archivos .jar tendrán que ser ejecutados dentro de la carpeta bin del jdk. Si quisiéramos ejecutarlos desde cualquier otra ruta tendríamos que configurar la variable de entorno classpath con la ruta exacta donde se encuentra el driver JDBC MAS INFORMACIÓN Si se necesita mas información sobre los temas tratados en este manual podemos acceder alas siguientes direcciones.

• www.mysql.com/ Donde encontrara información sobre las últimas versiones de las bases de datos y drivers utilizados en este manual, fallos corregidos, así como guías completas de instalación y configuración.

• www.borland.com/jbuilder Aquí podrá encontrar información mas reciente sobre este entorno de desarrollo

Autor: Ivan Elizalde Hernandez 16 de 17