Taller de MySQL y Java

Hace unas semanas ( o ya meses) a un compañero y a mi nos dieron la tarea de elaborar un pequeño taller e impartirlo en el tecnologico y pues basicamente les vengo a mostrar un poco de lo que se vio ( o basicamente todo lo que se alcanzo a ver en 4 horas).

Les recomiendo descargar MySQL workbench 5.2 y netbeans 6.x ya que seran las herramientas que estaremos utilizando!

Introducción

En el taller de Java y MySQL se busca que el estudiante se familiarizarse un poco con el manejo de un DBMS un software manejador de base de datos en los temas de creación de tablas y las relaciones, así como su cardinalidad ya sea de 1:1, 1: m, m: n.

Objetivo

El estudiante será capaz de crear una base de datos simple entendiendo los conceptos de cardinalidad, llave primaria, llave ajena, las relaciones, campos nulos entre otros.

El estudiante será capaz de realizar una conexión mediante Netbeans a la base de datos y generar consultas para obtener datos para el funcionamiento adecuado de la aplicación a realizar.

Desarrollo

Primeramente para iniciar con la practica del taller, el software utilizado fue MySQL workbench 5.2 y NetBeans 6.9 ( O versiones anteriores). Con MySQL workbench se diseño una base de datos utilizando los diagramas entidad relación, así que partiendo de este diseño se realizo la base de datos, creando automáticamente todas las sentencias SQL para crear las tablas con sus campos especificados y sus relaciones.

Para iniciar creamos una conexión a la que pertenecerá nuestra base de datos

clip_image002

Despues de esto creamos un nuevo modelo EER y se diseña el siguiente diagrama

clip_image004

EDITO!:

Ya que esto fue una simple documentacion que se me pidio en el tecnologico, al momento de hacer la base de datos no me explico muy bien, asi que realize este video que espero les sea de ayuda:

Ademas, en todas las llaves foraneas, es importante cambiar las restricciones, deben de estar en CASCADA, esto se hace de la siguiente manera:

Por ejemplo, en la tabla clientes tenemos campos de color “rojito” esos campos son llaves foraneas, entonces tendremos que hacer lo siguiente

image

Seleccionamos la pestaña foreign Keys de las tablas que contengan llaves foraneas, y luego feleccionamos la llave foranea y en la parte derecha tendremos esto:

image

El default es “No Action”, estas son las restricciones que existen cuando hay llaves foraneas, nosotros debemos de ponerle en CASCADE, para al momento de borrar un registro de una tabla que tiene llave foranea, estos tambien se borren en la otra tabla de la que pertenece la llave foranea.

Espero y se alcance a ver, si no daremos clic derecho en la imagen y le ponemos en abrir en otra pestaña

CONTINUA EL POST.

Para hacer esto damos doble clic donde dice Add Diagram.

clip_image006

Luego en la ventana cuadriculada que nos sale, que es nuestro diagrama EER damos clic donde dice Pleace A New Table. clip_image007Y agregamos a nuestro diagrama EER las 6 tablas. Luego damos doble clic sobre la tabla para agregar su nombre, sus columnas y el tipo de dato de cada columna.

La primera se llamara cliente y le pondremos los siguientes campos.

NOTA IMPORTANTE: Parecio muy alarmante… lo siento! JAIn love, LEAN los campos ROJOS son agregados automaticamente por las relaciones!, esto se ve en el video que les he puesto arriba!, usen estas imagenes como guia, pero para hacer esto, les recomiendo que vean mejor el video!Smile with tongue out

clip_image009

Realmente no importa el orden como hagamos las tablas solo hay que recordar que son 6 como mencione anteriormente, ahora seleccionamos otra tabla en blanco y damos doble clic sobre ella, lo mismo haremos con las demás en los pasos siguientes así que solo mencionare el nombre de la tabla y una imagen sobre como quedaría para que ustedes la modifiquen.

Tabla Dirección.

clip_image011

Tabla Renta.

clip_image013

Tabla Categoría.

clip_image015

Tabla Películas.

clip_image017

Tabla Inventario.

clip_image019

Después de esto nos dirigimos al menú Database>Forward Engineer y seguimos el asistente para crear nuestra base de datos partiendo del diagrama diseñado, en el asistente nos pedirá la conexión que creamos anteriormente solo elegimos la que creamos y seguimos con el asistente. Si todo ha salido bien ya tenemos nuestra base de datos corriendo en nuestro servidor MySQL.

clip_image021

clip_image023

clip_image025

clip_image027

Abrimos NetBeans. Una vez dentro damos clic en el menú Archivo, luego Proyecto Nuevo… y seleccionamos Aplicación Java. Enseguida le damos el nombre, que será VideoClubTec y donde dice crear clase principal lo desmarcamos, luego damos clic en Terminar para crear nuestro proyecto.

clip_image029

Creando un nuevo proyecto en netbeans, lo primero que haremos es agregar la librería proporcionada, que será el driver de MySQL que nos ayudara a conectarnos Dando clic derecho sobre Bibliotecas y luego seleccionamos Agregar Archivo JAR/Carpeta… para esto debemos tener guardado nuestra librería en algún lugar de nuestro disco duro para poder agregarla.

clip_image031

clip_image033

Creamos un nuevo JFrame que será nuestra única ventana (en este ejemplo)y el diseño será el siguiente:

clip_image034

clip_image035

Es importante que empezemos con la conexión primero, asi que nos iremos a la vista de código de nuestro JFrame y declararemos los siguientes objetos para asi realizar la conexión

clip_image036

La constante URL_BASEDATOS guarda la dirección de nuestro servidor mySQL, lo cual contiene la dirección, el puerto y la base de datos a la que se conectara, en este caso es videoclubtec, es necesario importar las siguientes librerías para el uso de estas clases y unas extras

clip_image037

Teniendo ya todo esto iniciaremos creando un metodo que se llame iniciarConexion que es el que nos conectara a nuestra base de datos

clip_image039

Este método lo mandaremos llamar en el constructor de nuestro JFrame. Con esto ya tendremos la conexión realizada con nuestra base de datos. Para comenzar a realizar altas de clientes crearemos una clase que se llame Clientes y será de la siguiente manera:

public class Clientes {

    private int idCliente;
    private String Nombre;
    private String Apellido;
    private int Edad;
    private int Direccion_idDireccion;

    public Clientes(){
        
    }
    public Clientes(int idCliente, String Nombre, String Apellido, int Edad, int Direccion_idDireccion) {
        this.idCliente = idCliente;
        this.Nombre = Nombre;
        this.Apellido = Apellido;
        this.Edad = Edad;
        this.Direccion_idDireccion = Direccion_idDireccion;
    }

    public String getApellido() {
        return Apellido;
    }

    public void setApellido(String Apellido) {
        this.Apellido = Apellido;
    }

    public int getDireccion_idDireccion() {
        return Direccion_idDireccion;
    }

    public void setDireccion_idDireccion(int Direccion_idDireccion) {
        this.Direccion_idDireccion = Direccion_idDireccion;
    }

    public int getEdad() {
        return Edad;
    }

    public void setEdad(int Edad) {
        this.Edad = Edad;
    }

    public String getNombre() {
        return Nombre;
    }

    public void setNombre(String Nombre) {
        this.Nombre = Nombre;
    }

    public int getIdCliente() {
        return idCliente;
    }

    public void setIdCliente(int idCliente) {
        this.idCliente = idCliente;
    }

    @Override
    public String toString(){
        return Nombre+" "+Apellido;
    }
}

Ahora nos iremos a la pestaña agregar clientes y en el botón que agregamos para dar altas creamos un evento dando doble click y escribiremos lo siguiente:

clip_image041

En nuestro diseño tenemos varios JTextField hay que identificarlos bien ya que no los hemos renombrado para saber cual pertenece a cual. La variable query2 almacena la sentencia SQL que se hara a la tabla cliente estableciendo parámetros y son agregados después con el objeto objPre.

Asi ya hemos realizado un update a nuestra base de datos que lo que hacemos es agregar un nuevo registro a la tabla cliente.

Para consultar un cliente y mostrar su información, en la pestaña consultar clientes en el botón “buscar” agregaremos lo siguiente:

clip_image043

Lo que hacemos es concatenarle a la instrucción SQL lo que esta en nuestro JTextField que será el nombre del cliente y se mostraran todos los resultados en el JList que tenemos, es importante establecer el modelo que ya hemos creado desde el principio a nuestra Lista de la manera jTlist1.addModel(modeloLista1)

En esta misma pestaña tenemos un botón que dice “Seleccionar” creamos también un evento a ese botón con lo siguiente:

clip_image044

Primero comprobamos que se selecciono algún elemento de la lista, y asi obtenemos el objeto cliente seleccionado y asi obtenemos su información para mostrarla en los labels como lo muestra el diseño anteriormente mostrado. Asi ya estaríamos obteniendo la información que nos proporciona la tabla cliente.

Conclusión

Como se pudo observar a lo largo del taller es sencillo crear una tabla en un manejador de base de datos para utilizar dichas tablas en una aplicación que nos encontramos desarrollando, para así mejorar el desempeño y el orden de esta. Se mejora el manejo de la información utilizando tablas y conexiones a bases de datos.

Trabajos citados

Deitel, D. y. (2007). Como programar en Java 7ma Edicion.

Anuncios

18 comentarios sobre “Taller de MySQL y Java

    1. De nada! gracias a ti, que bueno que te puede servir y claro seguire posteando! y se aceptan sugerencias cosas que te gustaria hacer en Java y no sabes por donde empezar comentalo y lo vemos 😀 saludos!.

  1. Te agradesco bastante me ha sido de mucha utilidad y sin duda es lo mejor que he encontrado en la red sobre este tema saludos y nuevamente muchas gracias

  2. Hola! antes que nada, muchas gracias por el aporte, buenisimo!!! me fue de mucha ayuda!!, y de paso quisiera pedirte un favor, como hago la misma conexion pero utilizando servlets y JSPs, es un fastidio esta materia jajajaj, el profe quiere que hagamos una conexion usando lo anterior con la interfaz de una pagina web, saludos!!!

  3. por cierto con interfaz me refiero, a que en vez de mostrar todo en un JFrame, sea en una pagina web, saludos! y muchisisimas gracias!

    1. Hola Luis!.

      Tal vez publicaste un comentario anterior a este y tal vez por eso no entiendo o paso algo diferente!, saludos y gracias por pasarte por aqui!.

      EDITO: YA vi el otro comentario, hay te respondo 🙂

  4. Oye estoy viendo este tutorial y parece que tiene algo que ver con los que nos dejó un profe, espero y me peudas ayuadar, con lo siguiente, el profe nos pidió esto:

    1. Creen dos tablas llamadas Nombres y Apellidos, donde contengan todos los apellidos que se les ocurra (Mínimo 50 elementos para cada tabla)
    2. Escriban un pequeño programa en Java y creen una conexión donde extraigan los datos de las dos tablas e inserten 200 datos aleatorios en la tabla clientes.
    2.1 Deberán crear nombres con los dos apellidos y con un nombre o con dos nombres.

    Me podrias decir de que manera poder hacerlo, espero y tambien me pases el codigo fuente de este tuto, porfavor, gracias de antemano. mi correo es:

    1. Es mas facil si me muestras tus dudas, puedes empezar creando las tablas que te piden, mira este post con MySQL Workbench es facil, las conexiones a las bases de datos y la verdad todo esta en este post, solo tienes que leerlo y comprenderlo, espero tus dudas! saludos!

  5. Ahora nos iremos a la pestaña agregar clientes y en el botón que agregamos para dar altas creamos un evento dando doble click y escribiremos lo siguiente

    /// en esa parte donde esta el try en la parte de VALUES (cuales son estos caracteres?)

    son 7 o otros???

  6. Holas esta buenisimo tu post!! me esta ayudando bastante!!! lo que quisiera preguntar es si me podrias pasar el codigo de java plis!!!! estoy teniendo problemitas con eso.desde ya millones de gracias!!!

  7. Hola amigo execlente tutorial.! segui los pasos hasta el boton agregar y cuando intento agregar me sale los siguiente no se puedes ayudarme

    Exception in thread “AWT-EventQueue-0” java.lang.NullPointerException
    ***

    1. Saludos!,

      Tal vez por la mala calidad de la imagen no logres ver bien que es lo que va, lamentablemente ya no tengo este proyecto pero masomenos se que va:

      en la parte donde no se distingue muy bien es en la cadena de la instruccion: insert into cliente(idcliente,nombre,apellido,edad,direccion_iddireccion) values(?,?,?,?,?)

      espero y este ahi el error!, saludos!

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s