martes, 19 de enero de 2016

Hola esta vez les traigo un ejercicio del lenguaje de programación java con MySQL desarrollando los procesos mas importantes para una base de datos que son eliminar, guardar, actualizar y insertar datos en MySQL.

1. Crear la base de datos correspondiente al proyecto (Matriculas).
2. Creamos las tablas necesarias con sus atributos correspondientes. (Tb_Estudiante).
3. Creamos un proyecto en Netbeans con su respectivo nombre (Sistema_Matriculas) y sus paquetes correspondientes (Modelo,Vista,Controlador).
4. Creamos la clase que nos permite conectar con la base de datos (Cls_Conexion) en el paquete controlador.

Tal y como se lo muestra en el siguiente código:
Antes de realizarla debemos agregar la librería My SQL Driver

public class Cls_Conexion {
    Connection miconexion=null;
   
    public Connection conexion() {
        try {
            Class.forName("com.mysql.jdbc.Driver");
            miconexion=DriverManager.getConnection("jdbc:mysql://localhost/Matriculas","root","root");}
       
        catch (Exception e) {
            System.out.printf(e.getMessage());}
        return miconexion;
    }  
}

5.- Creamos la clase Estudiante con su constructor y métodos get y set en este caso hemos puesto 7 atributos.

public class Cls_Estudiante {
    public String Nombre,Apellido,Cedula,Telefono,Edad,Sexo,Direccion;
   
    public Cls_Estudiante (){}

    public Cls_Estudiante( String Nombre, String Apellido, String Cedula, String Telefono, String Edad, String Sexo, String Direccion) {

        this.Nombre = Nombre;
        this.Apellido = Apellido;
        this.Cedula = Cedula;
        this.Telefono = Telefono;
        this.Edad = Edad;
        this.Sexo = Sexo;
        this.Direccion = Direccion;
    }

    public String getNombre() {
        return Nombre;
    }

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

    public String getApellido() {
        return Apellido;
    }

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

    public String getCedula() {
        return Cedula;
    }

    public void setCedula(String Cedula) {
        this.Cedula = Cedula;
    }

    public String getTelefono() {
        return Telefono;
    }

    public void setTelefono(String Telefono) {
        this.Telefono = Telefono;
    }

    public String getEdad() {
        return Edad;
    }

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

    public String getSexo() {
        return Sexo;
    }

    public void setSexo(String Sexo) {
        this.Sexo = Sexo;
    }

    public String getDireccion() {
        return Direccion;
    }

    public void setDireccion(String Direccion) {
        this.Direccion = Direccion;
    }   
}

6. Creamos el formulario Frm_Estudiantes donde colocamos 8 labels 8 cajas de texto 8 botones, y además una tabla para mostrar los datos.

public class Frm_Estudiantes extends javax.swing.JFrame {

    /**
     * Creates new form Frm_Estudiantes
     */
    public Frm_Estudiantes() {
        initComponents();
        mostrardatoscedula("");
    }

    Método mostrar datos

    public void MOSTRARDATOS(String valor){
        DefaultTableModel modelo = new DefaultTableModel();
       
        modelo.addColumn("ID");
        modelo.addColumn("Nombre");
        modelo.addColumn("Apellido");
        modelo.addColumn("Cedula");
        modelo.addColumn("Telefono");
        modelo.addColumn("Edad");
        modelo.addColumn("Sexo");
        modelo.addColumn("Dirección");
       
        Tabla_Datos.setModel(modelo);
        String sql ="";
        if (valor.equals("")){
            sql="Select * from Tb_Estudiante";}
        else{
            sql="Select * from Tb_Estudiante Where cedula='"+valor+"'";}

        String []datos =new String [8];
        try{
            Statement st=(Statement) cn.createStatement();
            ResultSet rs= st.executeQuery(sql);

            while(rs.next()){
                datos[0]=rs.getString(1);
                datos[1]=rs.getString(2);
                datos[2]=rs.getString(3);
                datos[3]=rs.getString(4);
                datos[4]=rs.getString(5);
                datos[5]=rs.getString(6);
                datos[6]=rs.getString(7);
                datos[7]=rs.getString(8);
                modelo.addRow(datos);}       
            Tabla_Datos.setModel(modelo);}
        catch(Exception e){}
    }

7. Código correspondiente al botón guardar

int op = JOptionPane.showConfirmDialog(null,"Deseas guardar los datos");
        if(op== JOptionPane.YES_OPTION){
           
            try {
                PreparedStatement pst =(PreparedStatement) cn.prepareStatement("INSERT INTO Tb_Estudiante(Nombre,Apellido,Cedula,Telefono,Edad,Sexo,Direccion) Values(?,?,?,?,?,?,?)");
                
                String nombre = txtNombre.getText();
                String apellido = txtApellido.getText();
                String cedula = txtCedula.getText();
                String telefono = txtTelefono.getText();
                String edad =cmbEdad.getSelectedItem().toString();
                String sexo= txtSexo.getText();
                String direccion = txtDireccion.getText();
               
                Cls_Estudiante e = new Cls_Estudiante(nombre, apellido, cedula, telefono, edad, sexo, direccion);
               
               
                pst.setString(1, e.getNombre());
                pst.setString(2, e.getApellido());
                pst.setString(3, e.getCedula());
                pst.setString(4, e.getTelefono());
                pst.setString(5, e.getEdad());
                pst.setString(6, e.getSexo());
                pst.setString(7, e.getDireccion());
               
                pst.executeUpdate();
                mostrardatoscedula("");
               
               
            } catch (Exception e) {
            }
           
                     
        }else{
            JOptionPane.showMessageDialog(null,"No se guardaron los datos");
            btnGuardar.setText("Interrumpido");
        }

8. Código correspondiente al botón Editar.

private void EditarActionPerformed(java.awt.event.ActionEvent evt) {                                       
        // TODO add your handling code here:
        int fila =Tabla_Datos.getSelectedRow();
        if(fila>=0){
            txtID.setText((String) Tabla_Datos.getValueAt(fila, 0).toString());
            txtNombre.setText((String) Tabla_Datos.getValueAt(fila, 1).toString());
            txtApellido.setText((String) Tabla_Datos.getValueAt(fila, 2).toString());
            txtCedula.setText((String) Tabla_Datos.getValueAt(fila, 3).toString());
            txtTelefono.setText((String) Tabla_Datos.getValueAt(fila, 4).toString());
            cmbEdad.setSelectedItem((String) Tabla_Datos.getValueAt(fila, 5).toString());
            cmbSexo.setSelectedItem((String) Tabla_Datos.getValueAt(fila, 6).toString());
            txtDireccion.setText((String) Tabla_Datos.getValueAt(fila, 7).toString());
        }
        else{ JOptionPane.showMessageDialog(null,"No selecciono ningun dato");
        }
    }                                     

9. Código correspondiente al botón Actualizar.


try {
            PreparedStatement pst = (PreparedStatement) cn.prepareStatement(""
                    + "UPDATE Tb_Estudiante SET Nombre='" + txtNombre.getText() +
                    "',Apellido='" + txtApellido.getText() +
                    "',Cedula='" + txtCedula.getText()+
                    "',Telefono='" + txtTelefono.getText() +
                    "',Edad='" + cmbEdad.getSelectedItem()+
                    "',Sexo='" + cmbSexo.getSelectedItem()+
                    "',Direccion='" + txtDireccion.getText()+
                    "' Where id='" + txtID.getText()+"'");
            pst.executeUpdate();
            mostrardatoscedula("");                                  
        } catch (SQLException ex) {}

       
10. Código correspondiente al botón Eliminar

try {
            int op = JOptionPane.showConfirmDialog(null,"Desea eliminar este dato");
                if(op==JOptionPane.YES_OPTION){
                    int fila =Tabla_Datos.getSelectedRow();
                    String id = Tabla_Datos.getValueAt(fila, 0).toString();
                    PreparedStatement pst = (PreparedStatement) cn.prepareStatement("DELETE FROM Tb_Estudiante where ID = '"+id+"'");
                    pst.executeUpdate();
                    mostrardatoscedula(""); }
                else{
                JOptionPane.showMessageDialog(null,"El dato no se ha borrado");}  
        } catch (SQLException ex) {

        }

11. Creamos un popmenu dentro del navegador


12. Agregamos dentro del popmenu dos menuItems, en este caso se llamarán Editar y Eliminar

Algo importante luego de esto debemos agregar el popmenu a nuestra tabla.

12. Por último vamos a generar los reportes para poder presentar nuestros datos para lo cual utilizamos el siguiente código

Código Reporte general

try {
            JasperReport reporte = JasperCompileManager.compileReport("Reporte_General");
            JasperPrint imprime =  JasperFillManager.fillReport(reporte, null,this.cn);
            JasperViewer.viewReport(imprime);
                      
        } catch (Exception e) {
            System.out.printf("No se ejecuta");
        }
Código Reporte Específico
Según el parámetro Cedula

String parametrocedula = txtCedula.getText();
        Map parametro= new HashMap();
        parametro.put("Cedula",parametrocedula);
        try {
            JasperReport reporte =JasperCompileManager.compileReport("Reporte_Especifico.jrxml");
            JasperPrint imprime = JasperFillManager.fillReport(reporte,parametro,this.cn);
            JasperViewer.viewReport(imprime);
        } catch (Exception e) {

            System.out.printf("No se ejecuta");     }

1 comentario:

Datos personales:

Entradas populares