Base de Datos.docx

26
http://jc-mouse.blogspot.com/2009/12/base-de-datos-netbeans-mysql- proyecto.html http://es.slideshare.net/sistemasddm/java-netbeans http://programasvariox.blogspot.com/2010_12_01_archive.html Base de Datos + Netbeans + MySQL (Proyecto Completo) Nuestro proyecto de Base de Datos llamado "Contactos", esta completo o mas o menos completo, el codigo contiene las funciones basicas que debe tener un proyecto de Base de Datos, añade nuevos registros, los elimina y tambien puede modificar esos registros. El mini tutorial esta compuesto de 8 capitulos. 1. Clase conexion Base de Datos 2. Probando la clase conectate.java 3. Sentencias SQL en Netbeans 4. Leer base de datos en Netbeans 5. Interfaz y Base de Datos con Netbeans 6. Agregar Registros a Base de Datos 7. Eliminar Registros de la Base de Datos 8. Actualizar la Base de Datos El proyecto. - Nuestra base de datos se llama "DBContactos" en MySQL

Transcript of Base de Datos.docx

http://jc-mouse.blogspot.com/2009/12/base-de-datos-netbeans-mysql-proyecto.htmlhttp://es.slideshare.net/sistemasddm/java-netbeanshttp://programasvariox.blogspot.com/2010_12_01_archive.html

Base de Datos + Netbeans + MySQL (Proyecto Completo)

Nuestro proyecto de Base de Datos llamado "Contactos", esta completo o mas o menos completo, el codigo

contiene las funciones basicas  que debe tener un proyecto de Base de Datos, añade nuevos registros, los

elimina y tambien puede modificar esos registros.

El mini tutorial esta compuesto de 8 capitulos.

1. Clase conexion Base de Datos

2. Probando la clase conectate.java

3. Sentencias SQL en Netbeans

4. Leer base de datos en Netbeans

5. Interfaz y Base de Datos con Netbeans

6. Agregar Registros a Base de Datos

7. Eliminar Registros de la Base de Datos

8. Actualizar la Base de Datos

El proyecto.

- Nuestra base de datos se llama "DBContactos" en MySQL

- Contiene una única tabla llamada "Persona"

http://jc-mouse.blogspot.com/2009/12/base-de-datos-netbeans-mysql-proyecto.htmlhttp://es.slideshare.net/sistemasddm/java-netbeanshttp://programasvariox.blogspot.com/2010_12_01_archive.html

El proyecto contiene las clases:

conectate.java : encargada de conectarse con la base de datos

persona.java: esta clase contiene todas las funciones encargadas de manipular la base de datos

tablaform.java: es la interfaz grafica en si

Ademas tambien se añadieron las clases:

mipanel.java

degradadoclass.java

Ambas clases  encargadas de añadir imagenes y colores a la interfaz grafica, para hacer de el proyecto final

un poco mas agradable a la vista. estas clases no tienen nada que ver con la base de datos.

Esta es nuestra interfaz final

http://jc-mouse.blogspot.com/2009/12/base-de-datos-netbeans-mysql-proyecto.htmlhttp://es.slideshare.net/sistemasddm/java-netbeanshttp://programasvariox.blogspot.com/2010_12_01_archive.html

Clase Conexion a Base de Datos

Cuando se trabaja con base de datos en java, lo mejor para tener un trabajo controlado, limpio y que sea facil

de mantener, es hacer uso de una clase exclusiva para la conexion.

Esta "clase java" que coloco en este post me a servido mucho para  realizar algunos trabajos en java sin

muchos dolores de cabeza, la clase se llama "conectate.java", y el uso es bastante sencillo. Si trabajas con

mysql, lo unico que debes modificar es el "paquete" donde lo usaras, el nombre de la base de datos, usuario y

password

package PAQUETE_QUE_USARA_ESTA_CLASE ;

import java.sql.*;

/**

 * @web http://jc-mouse.blogspot.com/

 * @author Mouse

 */

public class conectate {

   static String bd = "NOMBRE_BASE_DE_DATOS";

   static String login = "USUARIO";

http://jc-mouse.blogspot.com/2009/12/base-de-datos-netbeans-mysql-proyecto.htmlhttp://es.slideshare.net/sistemasddm/java-netbeanshttp://programasvariox.blogspot.com/2010_12_01_archive.html

   static String password = "PASSWORD";

   static String url = "jdbc:mysql://localhost/"+bd;

 

   Connection conn = null;

   

   public conectate() {

      try{         

         Class.forName("com.mysql.jdbc.Driver");         

         conn = DriverManager.getConnection(url,login,password);

         if (conn!=null){

            System.out.println("Conección a base de datos "+bd+". listo");

         }

      }catch(SQLException e){

         System.out.println(e);

      }catch(ClassNotFoundException e){

         System.out.println(e);

      }

   }

   

   public Connection getConnection(){

      return conn;

   }

 

   public void desconectar(){

      conn = null;

   }

}

Debo aclarar que el codigo no es mio, no coloco la fuente, porque me olvide la web de donde lo obtuve, esta

clase la tenia guardada hace tiempo en mi pc y ahora que se me presento un trabajo de java con base de

datos, la saque de la carpeta de los recuerdos y estuve recordando un poco el lenguaje.

Probando la clase "conectate.java"

Para probar la clase "conectate.java", creada en "Clase conexion a base de datos", que nos permite

conectarnos a una base de datos de MySQL, creamos un nuevo proyecto en Netbeans con el

nombre "contactos".

http://jc-mouse.blogspot.com/2009/12/base-de-datos-netbeans-mysql-proyecto.htmlhttp://es.slideshare.net/sistemasddm/java-netbeanshttp://programasvariox.blogspot.com/2010_12_01_archive.html

Antes, me olvidaba, tenemos que tener creada la base de datos, la cual llame"dbcontactos", si no sabes

como crear la base de datos pasate por aqui, en esa base de datos creamos una tabla llamada "persona".

muy bien, ahora para probar que la conexion en verdad funciona, creamos una clase y la llamamos

"persona.java", en esta clase colocamos el siguiente codigo:

package contactos;

/**

 * @web http://jc-mouse.blogspot.com/

 * @author mouse

 */

public class persona {

  conectate con;

  

  public persona (){

    con = new conectate();

  }

  

}

Ahora en el Main.java, colocamos el siguiente codigo:

package contactos;

/**

 * @web http://jc-mouse.blogspot.com/

 * @author Mouse

 */

public class Main {

http://jc-mouse.blogspot.com/2009/12/base-de-datos-netbeans-mysql-proyecto.htmlhttp://es.slideshare.net/sistemasddm/java-netbeanshttp://programasvariox.blogspot.com/2010_12_01_archive.html

    

    public static void main(String[] args) {        

        persona p = new persona();      

        p.con.desconectar();

    }

}

Ya solo nos queda ejecutar el proyecto (F6) y listo.

Sentencia SQL en netbeans

JAN29Post Info

Mouse

en 12:36

1 comentarios

Permalink

Continuando con el post "Probando la clase conectate.java", ahora daremos una nueva funcionalidad a

nuestra clase "persona.java", que es la de añadir nuevos registros a nuestra tabla "persona".

Modificaremos la clase "persona.java" con el siguiente codigo:

http://jc-mouse.blogspot.com/2009/12/base-de-datos-netbeans-mysql-proyecto.htmlhttp://es.slideshare.net/sistemasddm/java-netbeanshttp://programasvariox.blogspot.com/2010_12_01_archive.html

package contactos;

import java.sql.*;

/**

 * @web http://jc-mouse.blogspot.com/

 * @author mouse

 */

public class persona {

  conectate con;

  

  public persona (){

    con = new conectate();

  }

  

  /*Añade un nuevo registro*/

   public void NuevaPersona(String name, String ap, String am, String mail){

       try {            

            PreparedStatement pstm = con.getConnection().prepareStatement("insert

into " +

                    "persona(Nombre, appPaterno, appMaterno, mail) " +

                    " values(?,?,?,?)");            

            pstm.setString(1, name);

            pstm.setString(2, ap);

            pstm.setString(3, am);                        

            pstm.setString(4, mail);                        

            pstm.execute();

            pstm.close();            

         }catch(SQLException e){

         System.out.println(e);

      }

   }

  

}

Tambien añadiremos nuevas lineas de codigo a Main.java:

http://jc-mouse.blogspot.com/2009/12/base-de-datos-netbeans-mysql-proyecto.htmlhttp://es.slideshare.net/sistemasddm/java-netbeanshttp://programasvariox.blogspot.com/2010_12_01_archive.html

package contactos;

/**

 * @web http://jc-mouse.blogspot.com/

 * @author Mouse

 */

public class Main {

    

    public static void main(String[] args) {        

        persona p = new persona();      

        p.NuevaPersona("Fulanito", "Menganito", "Zutanito", "[email protected]");

        p.con.desconectar();

    }

}

ejecutamos nuevamente el proyecto (F6) y tenenmos el nuevo registro añadido a nuestra tabla

Leer base de datos con netbeans

Ahora que pudimos manipular la base de datos con la "insercion" de nuevos registros, ahora necesitamos

extraer esos registros para poder verlos, modificaremos la clase "persona.java"para añadir la

funcion "getDatos()".

http://jc-mouse.blogspot.com/2009/12/base-de-datos-netbeans-mysql-proyecto.htmlhttp://es.slideshare.net/sistemasddm/java-netbeanshttp://programasvariox.blogspot.com/2010_12_01_archive.html

Nuestra clase Persona.java que da de esta forma:

package contactos;

import java.sql.*;

/**

 * @web http://jc-mouse.blogspot.com/

 * @author mouse

 */

public class persona {

  conectate con;

  

  public persona (){

    con = new conectate();

  }

  

  /*Añade un nuevo registro*/

   public void NuevaPersona(String name, String ap, String am, String mail){

       try {            

            PreparedStatement pstm = con.getConnection().prepareStatement("insert

into " +

                    "persona(Nombre, appPaterno, appMaterno, mail) " +

                    " values(?,?,?,?)");            

            pstm.setString(1, name);

            pstm.setString(2, ap);

            pstm.setString(3, am);                        

            pstm.setString(4, mail);                        

            pstm.execute();

            pstm.close();            

         }catch(SQLException e){

         System.out.println(e);

      }

   }

   /*obtenemos todos los datos de la tabla*/

 public Object [][] getDatos(){

      int x = 0;

      //obtenemos la cantidad de registros existentes en la tabla

http://jc-mouse.blogspot.com/2009/12/base-de-datos-netbeans-mysql-proyecto.htmlhttp://es.slideshare.net/sistemasddm/java-netbeanshttp://programasvariox.blogspot.com/2010_12_01_archive.html

      try{        

         PreparedStatement pstm = con.getConnection().prepareStatement("SELECT

count(1) as total FROM persona ");

         ResultSet res = pstm.executeQuery();

         res.next();

         x = res.getInt("total");

         res.close();

      }catch(SQLException e){

         System.out.println(e);

      }

      

    Object[][] s = new String[x][2];  

    //realizamos la consulta sql y llenamos los datos en "Object"

      try{    

         PreparedStatement pstm = con.getConnection().prepareStatement("SELECT "

+

            " id, Nombre " +

            " FROM persona" +

            " ORDER BY id ");

         ResultSet res = pstm.executeQuery();

         int i = 0;

         while(res.next()){

            String estCodigo = res.getString("id");

            String estNombre = res.getString("nombre");

            s[i][0] = estCodigo;            

            s[i][1] = estNombre;            

            i++;

         }

         res.close();

          }catch(SQLException e){

         System.out.println(e);

    }

    return s;

 }

    

}

http://jc-mouse.blogspot.com/2009/12/base-de-datos-netbeans-mysql-proyecto.htmlhttp://es.slideshare.net/sistemasddm/java-netbeanshttp://programasvariox.blogspot.com/2010_12_01_archive.html

La nueva funcion GetDatos() esta definida como Object [][], tambien podemos definirla como String[][], la

funcion esta dividida en dos partes, la primera encargada de realizar una consulta para conocer el numero de

registros existentes y gurdarla en la variable "registros", la segunda parte de la funcion utilizando la

variable "registros" crea un objeto con esas dimensiones y realiza la consulta para extraer los datos y

colocarlas en la variable "data[][]" que es la que retorna.

el codigo del Main, debe quedar asi:

package contactos;

/**

 * @web http://jc-mouse.blogspot.com/

 * @author Mouse

 */

public class Main {

    

    public static void main(String[] args) {        

        persona p = new persona();              

        Object [][] sc ;

        sc = p.getDatos();

        for(int i=0;i<sc.length ;i++){

            System.out.println("> " + sc[i][0] + " - " + sc[i][1]);            

        }        

        p.con.desconectar();

    }

}

Ejecuta el programa

http://jc-mouse.blogspot.com/2009/12/base-de-datos-netbeans-mysql-proyecto.htmlhttp://es.slideshare.net/sistemasddm/java-netbeanshttp://programasvariox.blogspot.com/2010_12_01_archive.html

Interfaz y base de datos con netbeans

Trabajando con las base de datos y extrayendo los datos para su uso con java en post anteriores, ahora

necesitamos crear una interfaz de usuario para poder interactuar de una manera sencilla con nuestra

aplicacion.

Comenzaremos por ahora solo con mostrar los datos que sacamos de la base de datos MySql, poco a poco

se ira perfecconando la aplicacion para tener al final un proyecto bastante complejo y bastante completo. 

Paso1 :

Con el proyecto abierto (contactos) crearemos un nuevo jFrame al que llamaremos"tablaform", a esta nueva

ventana le añadiremos los controles JPanel y JTable como se ve en la imagen

http://jc-mouse.blogspot.com/2009/12/base-de-datos-netbeans-mysql-proyecto.htmlhttp://es.slideshare.net/sistemasddm/java-netbeanshttp://programasvariox.blogspot.com/2010_12_01_archive.html

al objeto JTable renombraremos a "tabla", la distribucion de los objetos debe quedar asi:

Paso 2:

Modificaremos la clase "persona.java", mas concretamente la funcion "getDatos()", los cambios que hicimos

fueron para poder leer todos los datos de nuestra tabla

public Object [][] getDatos(){

      int registros = 0;

      //obtenemos la cantidad de registros existentes en la tabla

      try{        

http://jc-mouse.blogspot.com/2009/12/base-de-datos-netbeans-mysql-proyecto.htmlhttp://es.slideshare.net/sistemasddm/java-netbeanshttp://programasvariox.blogspot.com/2010_12_01_archive.html

         PreparedStatement pstm = con.getConnection().prepareStatement("SELECT

count(1) as total FROM persona ");

         ResultSet res = pstm.executeQuery();

         res.next();

         registros = res.getInt("total");

         res.close();

      }catch(SQLException e){

         System.out.println(e);

      }

      

    Object[][] data = new String[registros][5];  

    //realizamos la consulta sql y llenamos los datos en "Object"

      try{    

         PreparedStatement pstm = con.getConnection().prepareStatement("SELECT "

+

            " id, Nombre, appPaterno, appMaterno, mail " +

            " FROM persona" +

            " ORDER BY id ");

         ResultSet res = pstm.executeQuery();

         int i = 0;

         while(res.next()){

            String estCodigo = res.getString("id");

            String estNombre = res.getString("nombre");

            String estpaterno = res.getString("appPaterno");

            String estmaterno = res.getString("appMaterno");

            String estmail = res.getString("mail");

            data[i][0] = estCodigo;            

            data[i][1] = estNombre;            

            data[i][2] = estpaterno;            

            data[i][3] = estmaterno;            

            data[i][4] = estmail;            

            i++;

         }

         res.close();

          }catch(SQLException e){

         System.out.println(e);

    }

    return data;

 }

http://jc-mouse.blogspot.com/2009/12/base-de-datos-netbeans-mysql-proyecto.htmlhttp://es.slideshare.net/sistemasddm/java-netbeanshttp://programasvariox.blogspot.com/2010_12_01_archive.html

Paso 3:

a nuestro "tablaform", le añadimos "import javax.swing.table.DefaultTableModel;", al jframe le aññadimos

la funcion WindowOpened y colocaremos el siguiente codigo:

private void formWindowOpened(java.awt.event.WindowEvent evt) {

        //objeto para almacenar datos

        Object[][] dtPer;        

        String[] columNames = {"id","Nombre","ap. Paterno","ap. Materno", "E-

Mail"};  

        // se utiliza la funcion

        dtPer = p.getDatos();

        // se colocan los datos en la tabla

        DefaultTableModel datos = new

DefaultTableModel(dtPer,columNames);                        

        tabla.setModel(datos);        

    }

Ya solo queda ejecutar la aplicacion:

http://jc-mouse.blogspot.com/2009/12/base-de-datos-netbeans-mysql-proyecto.htmlhttp://es.slideshare.net/sistemasddm/java-netbeanshttp://programasvariox.blogspot.com/2010_12_01_archive.html

Agregar registros a base de datos con netbeans

Continuando con nuestro mini-proyecto, ahora llego la hora de agregar/eliminar/actualizar registros a la base

de datos de forma visual.

Nuestro proyecto se llama "contactos", las clases que utilizamos son conectate.java y persona.java, la base de

datos (dbcontactos) y tabla (persona) que usamos las puedes ver aqui.

Clase persona.java

package contactos;

import java.sql.*;

/**

 * @web http://jc-mouse.blogspot.com/

 * @author mouse

 */

public class persona {

  conectate con;

  

  public persona (){

    con = new conectate();

  }

  

  /*Añade un nuevo registro*/

   public void NuevaPersona(String name, String ap, String am, String mail){

       try {            

            PreparedStatement pstm = con.getConnection().prepareStatement("insert

into " +

                    "persona(Nombre, appPaterno, appMaterno, mail) " +

                    " values(?,?,?,?)");            

            pstm.setString(1, name);

            pstm.setString(2, ap);

            pstm.setString(3, am);                        

            pstm.setString(4, mail);                        

            pstm.execute();

            pstm.close();            

         }catch(SQLException e){

http://jc-mouse.blogspot.com/2009/12/base-de-datos-netbeans-mysql-proyecto.htmlhttp://es.slideshare.net/sistemasddm/java-netbeanshttp://programasvariox.blogspot.com/2010_12_01_archive.html

         System.out.println(e);

      }

   }

 /*obtenemos todos los datos de la tabla*/

 public Object [][] getDatos(){

      int registros = 0;

      //obtenemos la cantidad de registros existentes en la tabla

      try{        

         PreparedStatement pstm = con.getConnection().prepareStatement("SELECT

count(1) as total FROM persona ");

         ResultSet res = pstm.executeQuery();

         res.next();

         registros = res.getInt("total");

         res.close();

      }catch(SQLException e){

         System.out.println(e);

      }

      

    Object[][] data = new String[registros][5];  

    //realizamos la consulta sql y llenamos los datos en "Object"

      try{    

         PreparedStatement pstm = con.getConnection().prepareStatement("SELECT "

+

            " id, Nombre, appPaterno, appMaterno, mail " +

            " FROM persona" +

            " ORDER BY id ");

         ResultSet res = pstm.executeQuery();

         int i = 0;

         while(res.next()){

            String estCodigo = res.getString("id");

            String estNombre = res.getString("nombre");

            String estpaterno = res.getString("appPaterno");

            String estmaterno = res.getString("appMaterno");

            String estmail = res.getString("mail");

            data[i][0] = estCodigo;            

            data[i][1] = estNombre;            

            data[i][2] = estpaterno;            

            data[i][3] = estmaterno;            

http://jc-mouse.blogspot.com/2009/12/base-de-datos-netbeans-mysql-proyecto.htmlhttp://es.slideshare.net/sistemasddm/java-netbeanshttp://programasvariox.blogspot.com/2010_12_01_archive.html

            data[i][4] = estmail;            

            i++;

         }

         res.close();

          }catch(SQLException e){

         System.out.println(e);

    }

    return data;

 }    

}

Empezemos:

Paso 1: crea un jFrame "tablaform" y coloca los siguientes controles, renombralos como se ve en la imagen

de abajo. ¡cuidado con las mayusculas y minusculas!

http://jc-mouse.blogspot.com/2009/12/base-de-datos-netbeans-mysql-proyecto.htmlhttp://es.slideshare.net/sistemasddm/java-netbeanshttp://programasvariox.blogspot.com/2010_12_01_archive.html

Nos dirigimos a Source (su codigo) y realizaremos lo siguiente;

Paso 2:  declara import javax.swing.table.DefaultTableModel; ya sabes donde

Paso 3: coloca estas lineas de codigo.

 /**

     * @param args the command line arguments

     */

    persona p= new persona();    

    Object[][] dtPer;

    int fila = -1;

http://jc-mouse.blogspot.com/2009/12/base-de-datos-netbeans-mysql-proyecto.htmlhttp://es.slideshare.net/sistemasddm/java-netbeanshttp://programasvariox.blogspot.com/2010_12_01_archive.html

Paso 4: Añade estos dos metodos, el primero updateTabla(), actualiza el objeto tabla cada vez que se lo

invoca,  el metodo nuevo(), su funcion es la de limpiar los jTextFields para añadir nuevos datos.

 private void updateTabla(){            

        String[] columNames = {"id","Nombre","ap. Paterno","ap. Materno", "E-

Mail"};  

        // se utiliza la funcion

        dtPer = p.getDatos();

        // se colocan los datos en la tabla

        DefaultTableModel datos = new

DefaultTableModel(dtPer,columNames);                        

        tabla.setModel(datos);

    }

    

    private void nuevo(){

        txtname.setText("");

        txtpaterno.setText("");

        txtmaterno.setText("");

        txtmail.setText("tu_correo@hotmail");

    }

Paso 5: añade el evento WindowOpenend al jFrame, el evento ActionPerformed a los objetos jButton y el

evento MouseClicked al objeto jTable, añade el codigo que se ve abajo

private void formWindowOpened(java.awt.event.WindowEvent evt)

{                                  

        updateTabla();  

        nuevo();

    }                                

    private void cmdRegistroActionPerformed(java.awt.event.ActionEvent evt) {

        String name = txtname.getText();

        String pat = txtpaterno.getText();

http://jc-mouse.blogspot.com/2009/12/base-de-datos-netbeans-mysql-proyecto.htmlhttp://es.slideshare.net/sistemasddm/java-netbeanshttp://programasvariox.blogspot.com/2010_12_01_archive.html

        String mat = txtmaterno.getText();      

        String mail = txtmail.getText();

        p.NuevaPersona(name, mat, pat, mail);        

        updateTabla();

    }

    private void cmdNuevoActionPerformed(java.awt.event.ActionEvent evt) {

        nuevo();

    }

    private void tablaMouseClicked(java.awt.event.MouseEvent evt) {

        fila = tabla.rowAtPoint(evt.getPoint());                

         if (fila > -1){                          

             txtname.setText(String.valueOf(tabla.getValueAt(fila, 1)));

             txtpaterno.setText(String.valueOf(tabla.getValueAt(fila, 2)));

             txtmaterno.setText(String.valueOf(tabla.getValueAt(fila, 3)));

             txtmail.setText(String.valueOf(tabla.getValueAt(fila, 4)));

         }

    }

Paso 6: Compila y ejecuta el proyecto

http://jc-mouse.blogspot.com/2009/12/base-de-datos-netbeans-mysql-proyecto.htmlhttp://es.slideshare.net/sistemasddm/java-netbeanshttp://programasvariox.blogspot.com/2010_12_01_archive.html

Eliminar/Borrar registros de base de datos con netbeans

Le añadiremos una nueva funcionalidad a nuestro proyecto base de datos y netbeans, esta funcionalidad es la

de poder eliminar registros de la base de datos, todo de una forma visual y sencilla.

Recordemos un poco, nuestro proyecto se llama "contactos", las clases que utilizamos

son conectate.java y persona.java, la base de datos (dbcontactos)y contiene una tabla (persona) puedes ver

con mas detalle nuestra base de datos aqui.

Los cambios que realizamos son:

Añadiremos un nuevo jButton al proyecto, lo llamaremos "cmdEliminar", nuestra interfaz debe quedar de

esta forma.

Para poder eliminar un registro de la base de datos realizaremos una instruccion SQL con el comando

DELETE, para ello debemos tener muy en cuenta la conformacion de nuestra tabla "Persona".

http://jc-mouse.blogspot.com/2009/12/base-de-datos-netbeans-mysql-proyecto.htmlhttp://es.slideshare.net/sistemasddm/java-netbeanshttp://programasvariox.blogspot.com/2010_12_01_archive.html

En la clase persona.java, añadiremos la nueva funcion deletePersona(), dentro la cual colocaremos la

instruccion SQL, ejecutaremos la sentencia y cerramos.

public void deletePersona(String cod){  

            try {                

                PreparedStatement pstm =

con.getConnection().prepareStatement("delete from persona where id

= ?");            

                pstm.setString(1, cod);                  

                pstm.execute();

                pstm.close();            

            }catch(SQLException e){

            System.out.println(e);

            }            

   }

Ahora en el JFrame correspondiente, al boton que creamos "cmdEliminar", le añadimos el

evento ActionPerformded, copias el siguiente codigo.

private void cmdEliminarActionPerformed(java.awt.event.ActionEvent evt) {

        if (fila > -1){

            String codigo = String.valueOf(tabla.getValueAt(fila,

0));                        

            p.deletePersona(codigo);

http://jc-mouse.blogspot.com/2009/12/base-de-datos-netbeans-mysql-proyecto.htmlhttp://es.slideshare.net/sistemasddm/java-netbeanshttp://programasvariox.blogspot.com/2010_12_01_archive.html

            updateTabla();

            fila=-1;

        }

    }

Este código lo que hace es revisar si la variable "fila" contiene un valor diferente a "-1",esto sucede cuando

se realiza un clic sobre el objeto "tabla", si esto es cierto, quiere decir que tenemos una fila seleccionada, por

lo tanto procedera a extraer el codigocorrespondiente y con este codigo hara un llamado a

deletePersona(codigo), elimina el registro y reinicia el valor de fila a -1 para evitar inconvenientes.

Actualizar/update registros de la base de datos con netbeans

Una ultima funcionalidad que le falta a nuestro miniproyecto debase de datos, es la de poder "modificar" los

datos leidos de la base de datos, para despues poder guardar esos cambios, para ello:

- Añadimos un nuevo jButton a nuestro proyecto.

- En nuestra clase, persona.java añadimos el codigo:

public void updatePersona(String id, String name, String paterno, String materno,

String mail){

       try {            

            PreparedStatement pstm = con.getConnection().prepareStatement("update

persona " +

            "set Nombre = ? ," +

            "appPaterno = ? ," +

            "appMaterno = ? ," +                    

            "mail = ? " +                    

            "where id = ? ");            

http://jc-mouse.blogspot.com/2009/12/base-de-datos-netbeans-mysql-proyecto.htmlhttp://es.slideshare.net/sistemasddm/java-netbeanshttp://programasvariox.blogspot.com/2010_12_01_archive.html

            pstm.setString(1, name);                  

            pstm.setString(2, paterno);

            pstm.setString(3, materno);

            pstm.setString(4, mail);

            pstm.setString(5, String.valueOf(id));

            pstm.execute();

            pstm.close();            

         }catch(SQLException e){

         System.out.println(e);

      }

   }

Explicacion: Esta nueva funcion, recibe como parametros el  "id" codigo del registro que se modificara,

ademas de los datos necesarios para realizar la consulta, como el nombre, apellido paterno , materno y el

mail de la persona. Luego se realiza una consulta SQL pasando esos datos.

Ya en el jFrame de nuestro proyecto, al nuebo jButton que creamos, añadimos el siguiente codigo: 

private void jButton1ActionPerformed(java.awt.event.ActionEvent evt)

{                                        

        if (fila > -1){

        String codigo = String.valueOf(tabla.getValueAt(fila, 0));

        String name = txtname.getText();

        String pat = txtpaterno.getText();

        String mat = txtmaterno.getText();      

        String mail = txtmail.getText();        

        p.updatePersona(codigo, name, pat, mat, mail);

        updateTabla();

        }

    }                                        

Lo unico que hace es capturar los datos del JTable, asignarlas a variables y llamar a la funcion

updatePersona().