miércoles, 20 de enero de 2016

Tutorial Java Base de datos.

Hola amigos en esta ocasión vamos a mostrar desde la creación de una base de datos y sus tablas mediante la realización de un ejercicio en Netbeans que realiza las cuatro funciones básicas como son: guardar, Editar, Actualizar y Eliminar datos y a su ves genere los repostes.

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);
https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh2x2GqJtMcfOK24UKxSdLVdcxXJr49nDZOyOpWZ15gYVu5hdXnNLuZFN-666SzCd4TnQLuqg0pjarIb8pvWM0HUUx4gtx0EyuWX2Ch488gYdlFuchkey58YpIpV6ou7Jby5l9jkDF_bR2e/s400/3.jpg
            JasperViewer.viewReport(imprime);
        } catch (Exception e) {

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




No hay comentarios :

Publicar un comentario