Ir al contenido principal

Aplicación grafica con Java y MySQL

1.- Se crea una base de datos en MySQL, para este ejemplo se creara una BD llamada prueba1 que tendrá una tabla donde se almacenaran el nombre y apellidos de una persona.

CREATE DATABASE prueba1;

USE prueba1;

CREATE TABLE IF NOT EXISTS tabla1 (
  id_tabla1 int(11) NOT NULL AUTO_INCREMENT PRIMARY KEY,
  nombre varchar(30) NOT NULL,
  ap_paterno varchar(30) NOT NULL,
  ap_materno varchar(30) NOT NULL
);


INSERT INTO tabla1 (nombre,ap_paterno,ap_materno) VALUES ('sandra', 'molina', 'lopez'); 


2.- Ya que se tiene la base de datos se crea una interfaz gráfica con los siguientes componentes:





3.- Para realizar la conexión con el gestor de base de datos MySQL se necesita un driver que permita establecer el vínculo entre Java y MySQL, para esto se hace clic derecho sobre la carpeta librerías que se crea automáticamente con NetBeans y se selecciona Add Library y se elige MySQL JDBC Driver.






4.- Se agregan las siguientes librerías al proyecto para poder realizar la conexión y las consultas correspondientes.

import java.sql.DriverManager; import java.sql.Connection; import java.sql.ResultSet; import java.sql.Statement; 

5.- Dentro de la clase se declaran las siguientes variables:

private Connection conexion;     
private Statement st;     
private ResultSet rs; 


6.-  El siguiente código crea un método que realiza la conexión con la base de datos, posteriormente realiza una consulta para almacenar todos los registros de la tabla1, y posteriormente selecciona el primero para mostrarlo en las cajas de texto creadas anteriormente.

    public void Conectar(){
         try
            conexion=DriverManager.getConnection("jdbc:mysql://localhost/prueba1","root","");                     
            st=conexion.createStatement(); 

            rs=st.executeQuery("Select * from tabla1");             

            rs.next(); 

this.jtf_id_tabla1.setText(rs.getString("id_tabla1"));                         
this.jtf_nombre.setText(rs.getString("nombre"));             
this.jtf_ap_paterno.setText(rs.getString("ap_paterno"));
this.jtf_ap_materno.setText(rs.getString("ap_materno")); 

        }catch(SQLException err){ 
            JOptionPane.showMessageDialog(null,"Error "+err.getMessage()); 
        } 

    } 


7.- Para desplazarse entre los registros se crea un método para siguiente, anterior, primero y último, el código es el mismo, solo cambia la validación para cuando se llega al ultimo registro el usuario no pueda desplazarse a un registro inexistente o cuando se esta en el primero.

Los métodos para desplazarse entre los registros almacenados en el ResultSet (rs) son;

rs.next(); // Siguiente registro 


rs.previous(); //Registro anterior


rs.first(); //Primer registro


rs.last(); //Último registro


private void siguienteRegistro{    try{             if(rs.isLast()==false) {                 rs.next();                 this.jtf_id_tabla1.setText(rs.getString("id_tabla1"));                this.jtf_nombre.setText(rs.getString("nombre"));                this.jtf_ap_paterno.setText(rs.getString("ap_paterno"));                this.jtf_ap_materno.setText(rs.getString("ap_materno"));             }         }catch(Exception err) {             JOptionPane.showMessageDialog(null,"Error "+err.getMessage());         }     } 

Estos métodos serán llamados dentro del evento clic del botón correspondiente.

8.-  Para guardar un registro nuevo, se almacenan los valores en variables String y posteriormente se genera la consulta Insert concatenando el código SQL con los valores de las textField, hay que tener en cuenta que como son valores varchar estos en SQL deben ir entre ", así que en Java se concatenan usado ', véanse los ' de color rojo en el siguiente código.

    private void guadarRegistro() {        
       try{ 
            String nombre=this.jtf_nombre.getText(); 
            String ap_paterno=this.jtf_ap_paterno.getText(); 
            String ap_materno=this.jtf_ap_materno.getText(); 

            st.executeUpdate("Insert into tabla1 (nombre,ap_paterno,ap_materno)"+" values ('"+ nombre +"','"+ap_paterno+"','"+ap_materno+"');"); 

            this.primerRegistro();

        } catch(SQLException err)         { 
            JOptionPane.showMessageDialog(null,"Error "+err.getMessage()); 
        } 

    } 

9.- Borrar registro


    private void borrarRegistro(){
        try
           st.executeUpdate("delete from tabla1 where id_tabla1="+this.jtf_id_tabla1.getText());

           this.primerRegistro();

       } catch(SQLException err){ 
            JOptionPane.showMessageDialog(null,"Error "+err.getMessage()); 
        } 

    } 





Comentarios

Entradas más populares de este blog

Creación de Librerías en Java

Creación de Librerías en Java   Las librerías son un conjunto de clases con funciones especificas que ayudan a desarrollar aplicaciones más complejas de una forma sencilla, por ejemplo si se requiere realizar cálculos matemáticos y emplear el funciones como el Seno o Coseno, simplemente se importa la librería Math y se utilizan estos métodos, en lugar de desarrollarlos. Java cuenta con una extensa lista de librerías disponibles dentro del JDK o desarrolladas por terceros, pero también existe la posibilidad de desarrollar librerías propias para reutilizar de forma más eficiente el código, por ejemplo si se trabaja de forma cotidiana con conexión a base de datos, se pueden desarrollar métodos genéricos que realicen la conexión, que validen las consultas, etc. de forma que su uso reduzca el tiempo de desarrollo e incremente la productividad. Para este tutorial se van a crear dos proyectos en NetBeans, uno sera la librería y el otro proyecto hará uso de esta.

Elegir la clase a ejecutar en NetBeans, MVC

Elegir la clase a ejecutar en NetBeans Para que java pueda ejecutar una aplicación esta debe tener un método conocido como punto de entrada, este método tiene la sintaxis: void static void main(String [] sax){ //código } En ocasiones en una aplicación tiene varios puntos de entrada, que pueden servir para probar diferentes partes de la aplicación sin tener que recorrer o pasar por varias clases, para esto se puede seleccionar directamente en las propiedades del proyecto que clase será la principal.

Librerías JOptionPane para generar ventanas de entrada y salida de datos

Para poder introducir datos leídos desde el teclado existen varias formas, una de ellas hace uso de la librería javax.swing.JOptionPane que entre otras opciones permite mostrar ventanas para introducir datos, y ventanas para mostrar valores. Con el uso de esta librería se crean pequeñas interfaces definidas por el sistema, pero ya se hace uso de las librerías graficas swing, que se verán más adelante.