CRUD con Java y SQLite

Tips

Se le llama en informática, CRUD es el acrónimo de «Crear, Leer, Actualizar y Borrar» (del original en inglés: Create, Read, Update and Delete), que se usa para referirse a las funciones básicas en bases de datos o la capa de persistencia en un software.

SQLite es un sistema de gestión de bases de datos relacional compatible con ACID, contenida en una relativamente pequeña (~275 kiB) biblioteca escrita en C.

Ventana

Para el ejemplo creamos una base de datos a la que le llamaremos ”CRUD” y una tabla llamada  “PersonasDatos”, podemos ponerle el nombre que deseemos, y creamos 3 campos, “id” de tipo “INTEGER” que será la llave primaria y “AUTOINCREMENT”, “Nombre” de tipo “TEXT”, “Numero” de tipo “INTEGER”.

En el botón “Guardar” ponemos el siguiente código:

String sql="INSERT INTO PersonasDatos(Nombre,Numero) "+ "values(?,?)";
          int Pnumber=Integer.parseInt(PerNumero.getText());
        try{
            

            //Data to insert in the DB
            pst =conn.prepareStatement(sql);
            pst.setString(1, PerNombre.getText());
            pst.setInt(2, Pnumber);
           
        
            pst.execute();
            UpdateJTable();
            JOptionPane.showMessageDialog(null, "Guardado");

    PerNombre.setText("");
    PerNumero.setText("");
          
        }catch(Exception e)
        {
            JOptionPane.showMessageDialog(null, e);

        }finally {
            try{
                rs.close();
                pst.close();
                // conn.close();
            }
            catch(Exception e) {
            }
        }

En el botón “Actualizar” ponemos el siguiente código:

try{
        //obtener nombre guardado      
       int row =dataview.getSelectedRow();
      String Rnombre=(dataview.getModel().getValueAt(row, 0).toString());
      //datos para actualizar
      String Pnombre=PerNombre.getText();
      String Pnumero=PerNumero.getText();



       
String sql="update PersonasDatos set Nombre='"+Pnombre+"',Numero='"+Pnumero+"' where Nombre='"+Rnombre+"'"; 

String nombre=Rnombre;
        int confirmar = JOptionPane.showConfirmDialog(null, "Todos los datos de:\n"  + nombre + "\n serán actualizados, esta acción es permanente.\n" +
         "¿Desea Continuar?", "Actualizar", WIDTH, HEIGHT, null);
        
        if(confirmar == JOptionPane.YES_OPTION){
          pst =conn.prepareStatement(sql);
    pst.execute();
    JOptionPane.showMessageDialog(null, "Actualizado"); 
    
    //actualizamos la tabla y limpiamos los campos 
    UpdateJTable();
    PerNombre.setText("");
    PerNumero.setText("");
        }

                
    }catch(Exception e)
    {
           JOptionPane.showMessageDialog(null, e);
    }finally {
try{
  rs.close();
      pst.close();
    // conn.close();
  }
  catch(Exception e) {
                   }

En el botón “Eliminar” ponemos el siguiente código:

String sql="delete from PersonasDatos where Nombre=?";
         try{
    pst =conn.prepareStatement(sql);
    pst.setString(1, PerNombre.getText());
    
   // rs=pst.executeQuery();
    pst.execute();
    //actualizamos la tabla 
    UpdateJTable();
    JOptionPane.showMessageDialog(null, "Eliminado");
//limpiamos los campos
PerNombre.setText("");
PerNumero.setText("");
    }catch(Exception e)
    {
           JOptionPane.showMessageDialog(null, e);

    }finally {
try{
  rs.close();
      pst.close();
     //conn.close();
  }
  catch(Exception e) {
                   }
      } 

Siempre que se trabaja con bases de datos en necesario validar los datos que se guardaran con el fin de evitar que los usuarios intenten insertar un tipo de dato erróneo en un campo de la base de datos, validando el tipo de datos para cada campo en la base de datos evitamos errores. En el ejemplo se validarán los datos para permitir que el campo “Nombre” solo se permitan letras y en el campo “Número” solo números, también podemos limitar la cantidad de caracteres que deseamos que se inserten en cada campo.

import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;
import javax.swing.JOptionPane;
import javax.swing.JTextField;

/**
 *
 * @author YAXMA
 */
public class validarDatos {
  public void ValidarNum (JTextField Num){
     Num.addKeyListener(new KeyAdapter() {
public void keyTyped(KeyEvent e){
    char c =e.getKeyChar();
    if(!Character.isDigit(c)){
       
        e.consume();
         JOptionPane.showMessageDialog(null, "Solo Números");
    }
}
     
     });
 }   

public void ValidarCartr(JTextField Num){
     Num.addKeyListener(new KeyAdapter() {
public void keyTyped(KeyEvent e){
    char c =e.getKeyChar();
    if(Character.isDigit(c)){
       
        e.consume();
         JOptionPane.showMessageDialog(null, "Solo Letras");
    }
}
     
     });
  }
  public void limitarNumdeCarac (JTextField Num, int limit ){
     Num.addKeyListener(new KeyAdapter() {
public void keyTyped(KeyEvent e){
    char c =e.getKeyChar();
    int lmt=Num.getText().length();
    if( lmt>=limit){
        e.consume();
         JOptionPane.showMessageDialog(null, "Limite de caracteres alcanzado");
    }
}
     
     });
 }
}

Creamos un objeto de la clase “ValidarDatos”:

validarDatos vld= new validarDatos();

Y ponemos los campos que deseamos validar:

vld.ValidarNum(PerNumero);

 vld.ValidarCartr(PerNombre);

 vld.limitarNumdeCarac(PerNumero, 8);

Puedes descargar el proyecto NetBeans aquí

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *