TaT AvbravoDataClassG

Revision as of 02:46, 6 March 2012 by Avbravo (Talk | contribs)
(diff) ← Older revision | Current revision (diff) | Newer revision → (diff)

Contents

Instalar plugin

 Contributed By;  AVBravo

Descargar el plugin desde

 Descargar plugin
 En el menu Herramientas- Complementos de NetBeans seleccionar Descargado e instalar el plugin.

Como usar DataClassG


 Muestra como utilizar le plugin para crear tu propio api de persistencia

File:Proyecto.png

 Ahora agregamos el Driver JDBC MYSQL
 File:Libraries.png
 dar clic en el plugin
 File:Plugin.png
 Seleccionamos la base de datos
 File:Databases.png
 Tenemos el API generado
 File:Source.png

 Damos clic derecho en el nombre del proyecto y seleccionamos Limpiar y  
 Construir
 File:Test.png
 Ahora en la carpeta dist de nuestro proyecto tenemos el jar con la 
 persistencia de nuestra base de datos
 File:Jar.png
 Ahora creamos un nuevo proyecto
 File:Application.png
 En las propiedades del proyecto, agregamos el driver jdbc MySQL y el API de 
 persistencia correspondiente al proyecto anterior que creamos.(archivo .jar)
 File:Jar2.png
 Bibliotecas necesarias
 File:Bibliotecas.png
 Esta es la clase principal
 File:Principal.png
 
 Agregamos el api
 File:Agregar.png

Metodos..

Insert()

  Crea un registro nuevo en la tabla. Devuelve boolean si fue exitoso.
  Verifica que los campos requeridos tengan valores.
  Verifica si ya existe un registro con esos datos.
   Usuarios u = new Usuarios();
   UsuariosController uc = new UsuarioController();
    u.setCedula("1-1-1");
    u.setNombre("name");
    if(uc.Insert(u)){
      System.out.println("Guardado exitosamente”);
    }else{
      System.out.println("No se guardo el registro”+ uc.getMensaje());
    }



Update()

  Edita el registro actual. Devuelve boolean si fue exitoso. 
  Verifica que los campos requeridos tengan valores.
    Usuarios u = new Usuarios();
    UsuariosController uc = new UsuariosController();
    u.setCedula("1-1-1");
    u.setNombre("new name");
    if(uc.Update(u)){
      System.out.println(" Se edito exitosamente");
    }
    else{
      System.out.println("No se actualizo el registro");
    }

Update(String where)

Edita los registros basados en una sentencia sql. Devuelve boolean si fue exitoso.
   Usuarios u = new Usuarios();
 UsuariosController uc = new UsuariosController();
String sql ="activo='si' where cedula='6-6-6' or cedula='7-7-7'";
 
     if (uc.Update(sql)) {
         System.out.println(" Se actualizaron exitosamente");
     } else {
       System.out.println("No se actualizaron los registros");
   }

UpdatePrimaryKey()

Se utiliza cuando deseamos editar la clave primaria, se utilizan dos objetos   
uno  con los valores anteriores y otro se actualizara con los 
nuevos valores en la clave primaria. Se cambiara el username avbravo por  
avbravo1

Nota: Para tablas relacionadas debe ser establecida la actualizacion en cascada para las tablas relacionadas.

       User user_old = new User();
       User user_new = new User();
       UserController uc = new UserController();
       //indicamos la clave primaria existente
       user_old.setUsername("avbravo");
       User u = uc.findByPrimaryKey(user_old);
       if (u != null) {         
            user_old = u;
            //indicamos la nueva clave primaria
            user_new.setUsername("avbravo1");         
           if (uc.EditarClavePrimaria(user_old, user_new)){
               System.out.println("Se actualizo la clave primaria");
           }
           else{
               System.out.println("no se actualizo");
           }
       } else {
           System.out.println("No hay registros");
       }

File:Cascada.png‎

Eliminar()

Elimina el registro actual. Devuelve boolean si fue exitoso.
  Usuarios u = new Usuarios();
  UsuariosController uc = new UsuariosController();
  u.setCedula("1-1-1");
  if (Mensajeria.PreguntaSiNo("Desea eliminar el usuario",  
      "Usuarios").equals("si")) {
      if (uc.Eliminar(u)) {
          System.out.println(" Se elimino exitosamente");
      } else {
        System.out.println(""No se elimino el registro");
    }
 }



Eliminar(String sql)

Elimina los registros basados en la sentencia sql enviado. Devuelve boolean si fue exitoso.
  Usuarios u = new Usuarios();
  UsuariosController uc = new UsuariosController();
 String sql ="cedula='7-7-7' or cedula='6-6-6'";
  if (Mensajeria.PreguntaSiNo("Desea eliminar los registros ",  
      "Usuarios").equals("si")) {
      if (uc.Eliminar(sql)) {
          System.out.println(" Se eliminaron exitosamente");
      } else {
        System.out.println("No se eliminaron los registros");
    }
 }

EliminarTodos()

   Elimina todos los registros de la tabla. Devuelve boolean si fue exitoso.
   Usuarios u = new Usuarios();
   UsuariosController uc = new UsuariosController();
   u.setCedula("1-1-1");
   if (Mensajeria.PreguntaSiNo("Desea eliminar todos los usuario", 
      "Usuarios").equals("si")
   {
    if (uc.EliminarTodos()) {
       System.out.println(" Se eliminaron todos los usuarios exitosamente");
     } else {
        System.out.println("No se eliminaron los usuarios");
   }
 }

ExisteRegistro(Class)

  Devuelve un booleano si existe el registro.
  Usuarios u = new Usuarios(); 
  UsuariosController uc = new UsuariosController(); 
  u.setCedula("1-1-1"); 
  if(uc.ExisteRegistro(u)){
    System.out.println("Existe un registro con esa cédula"); 
  } else { 
    System.out.println("NO existe un registro con esa cédula");
  }

findByPrimaryKey()

 Encuentra el registro con la clave primaria. Se debe asignar la llave primaria   
 a buscar. 
 Devuelve un objeto con los resultados o null si no encuentra el registro.
 Usuarios u = new Usuarios();
 UsuariosController uc = new UsuariosController();
 u.setCedula("1-1-1");
 Usuarios u2 = uc.findByPrimaryKey(u);
 if (u2 != null) {
    u = u2;
    System.out.println(" Nombre" + u.getNombre());
 } else {
   System.out.println("No se encontro un registro con esa clave");
 }

findBy...

 Se crean los metodos con todos los campos para realizar la busqueda y
 devuelve un boolean indicando si se encontro y se carga la lista de objetos de     
 esa clase que podemos recorrer.



findByNombre

    Usuarios u = new Usuarios();
    UsuariosController uc = new UsuariosController();
    u.setNombre("name");
    if(uc.findByNombre(u)){
      for(Usuarios u1:uc.getUsuarioslist()){
        System.out.println("cedula "+ u1.getCedula() + " nombre " + 
        u1.getNombre());
      }
    }
    else{
      System.out.println("No se encontro un registros con ese nombre");
   }

Nota:

   Si es un solo registro podemos usar
       Usuarios u =uc.getUsuarioslist().get(0);

findByMapa()

    Parametros para Consultas.
    1.Crear un Map para indicar los parametros
    2. Establece los parametros mediante el metodo put
    3. Llamar al metodo findByMapa
    4. Si no hay registros devuelve false
     4.1 Si es un solo registros obtenemos el primero posición 0
        UsuariosController uc = new UsuariosController();
        Map<String, String> parametros = new HashMap<String, String>();
        parametros.put("nombre", "avbravo");
        //otro parametro
        parametros.put("pais","panama");
        if(uc.findByMapa(parametros)){
          for(Usuarios u: uc.getUsuarioslist()){
            System.out.println("cedula " + u.getCedula() + "nombre " + u.getNombre());
        }
        }else{
         System.out.println("No existen registros con esa condicion”);
        }
     Nota: El Query puede ser usado para consultas también.

Contador()

 Devuelve el numero de registros en la tabla.
   UsuariosController uc = new UsuariosController();
          System.out.println(" Registros " + uc.Contador());

Contador(String sql)

 Devuelve el numero de registros que cumplan la condición sql.
 UsuariosController uc = new UsuariosController();
           String sql = "cedula='6-6-6' or cedula='7-7-7'";
           System.out.println(" Registros " +uc.Contador(sql));

Func(String funcion, String campo)

 Permite ejecutar funciones sobre un campo (sum,max,min, etc)
 devuelve un valor Double, que puede   
 ser convertido a Integer si es necesario.
   
         RecibosController recibosController1 = new RecibosController();
         Double Total = recibosController1.Func("sum", "totalpagado");
        System.out.println(" Total "+total);
 //Si es un campo entero
 //   System.out.println(" Total  "+total.intValue());

Func(String funcion, String campo,String where)

 Permite ejecutar funciones sobre un campo, devuelve un valor Double, que puede   
 ser convertido a Integer si es necesario.
   
         RecibosController recibosController1 = new RecibosController();
         Double total = recibosController1.Func("min", "totalpagado","anulado='no'");
           System.out.println(" total "+total);

Query()

Para consultas se puede implementar la clausula where

 String sql = "nombre= 'aristides villarreal bravo' and pais='panama' order by cedula desc";
 if (uc.Query(sql)) {
   for( Usuarios u: uc.getUsuarioslist()){
    System.out.println("cedula " + u.getCedula() + "nombre " + u.getNombre());
    }
 } else {
   System.out.println("No existen registros con esa condicion");
  }

//Tambien para obtener la lista ordenada

 String sql = "order by cedula desc";
 if (uc.Query(sql)) {
   for( Usuarios u: uc.getUsuarioslist()){
    System.out.println("cedula " + u.getCedula() + "nombre " + u.getNombre());
   }
 } else {
   System.out.println("No existen registros con esa condicion");  
     }

Listar()

Devuelve una lista de objetos, la operación que realiza es select * from tabla

  Usuarios u = new Usuarios();
  UsuariosController uc = new UsuariosController();               
  if(uc.Listar()){
   for( Usuarios u: uc.getUsuarioslist()){
    System.out.println("cedula " + u.getCedula() + "nombre " + u.getNombre());
   }
 }else{
System.out.println("No existen registros");
 }

Informe de Generacion

 El plugin genera el archivo llamado InformeGeneracion.txt
 en el directorio generales en el que se incluyen los mensajes del proceso y la  
 verificacion de la estructura de las tablas, como por ejemplo
 1. Te la tabla tenga llave primaria
 2. Que no tenga claves foraneas de manera ciclica(haciendo referencia a ella 
    misma)

File:Tablas.png

Combo

  Cargar un Combo
 File:Combo.png
  Arrastramos las clases al formulario.
  En Bibliotecas-> TestPersistence.jar-> En el paquete beans arrastramos    
  Usuarios.class y controller arrastramos UsuariosController.class
  File:Arrastrar.png

  Si usamos SwingX arrastramos un JXComboBox o un simple JComboBox
  en el init del formulario. Agregamos
  AutoCompleteDecorator.decorate(jXComboBoxUsuarios);
  CargarCombo();


Ahora cargamos el combo

  private void CargarCombo() {
       try {
           jXComboBoxUsuarios.removeAllItems();
           if (usuariosController1.Listar()) {
               for (Usuarios u : usuariosController1.getUsuarioslist()) {
                   jXComboBoxUsuarios.addItem(u.getNombre());
               }
           } else {
               Mensajeria.Mensaje("No existen registros de usuarios");
           }
       } catch (Exception ex) {
           Mensajeria.MensajeError(ex, "CargarCombo()");
       }
   }

Ahora en el actionPerformed del combo

try {
           int a = jXComboBoxUsuarios.getSelectedIndex();
           if (a != -1) {
               usuarios1 = usuariosController1.getUsuarioslist().get(a);
               jTextFieldCedula.setText(usuarios1.getCedula());
               jTextFieldNombre.setText(usuarios1.getNombre());
           }
       } catch (Exception ex) {
           Mensajeria.MensajeError(ex, "Seleccion Combo()");
       }


Seleccionar automáticamente un elemento

  jXComboBoxUsuarios.setSelectedItem(usuarios1.getNombre());


Formulario Edicion combos relacionados

  Si tenemos tablas relacionadas y esta las mostramos mediante combos como se    
  muestra en la siguiente figura.

File:Miscombos2011.png‎

 Cuando seleccionamos el primer combo y establecemos el setSelected para el 
 siguiente combo, en el metodo de validación de este debemos llamar nuevamente 
 al metodo listar.

En el init() cargamos los dos combos

 CargarComboGrupoGastoSegunObjeto();
       CargarComboGastos();

private void CargarComboGastos() {
       try {
           jXComboBoxGastos.removeAllItems();
           if (gastossegunobjetoController1.Listar()) {
               for (Gastossegunobjeto gastossegunobjeto :   
              gastossegunobjetoController1.getGastossegunobjetolist()) {
               
    jXComboBoxGastos.addItem(gastossegunobjeto.getIdgastosegunobjeto() + "-" + gastossegunobjeto.getGastosegunobjeto().trim());
               }
           } else {
               Mensajeria.Mensaje("No se han creado los grupos");
           }
       } catch (Exception ex) {
           Mensajeria.MensajeError(ex, "CargarComboGrupo)");
       }
   }
   private boolean CargarComboGrupoGastoSegunObjeto() {
       try {
           jXComboBoxGrupoGastos.removeAllItems();
           if (grupogastossegunobjetoController1.Listar()) {
               jXComboBoxGrupoGastos.removeAllItems();
               for (Grupogastossegunobjeto g : grupogastossegunobjetoController1.getGrupogastossegunobjetolist()) {
                   jXComboBoxGrupoGastos.addItem(g.getIdgrupogastosegunobjeto() + " - " + g.getGrupogastosegunobjeto());
               }
               return true;
           } else {
               Mensajeria.Mensaje("Debe crear primero el grupo de gastos segun objeto  para crear gastos segun objeto");
           }
       } catch (Exception ex) {
           Mensajeria.MensajeError(ex, "CargarComboGrupoGastoSegunObjeto()");
       }
       return false;
   }

En el primer combo---

    try {
           boolean habilitar = false;
           int i = jXComboBoxGastos.getSelectedIndex();
           if (i != -1) {
               gastossegunobjeto1 = gastossegunobjetoController1.getGastossegunobjetolist().get(i);
               jTextFieldGasto.setText(gastossegunobjeto1.getGastosegunobjeto());
               habilitar = true;
               Grupogastossegunobjeto gg1 = new Grupogastossegunobjeto();
               gg1.setIdgrupogastosegunobjeto(gastossegunobjeto1.getIdgrupogastosegunobjeto());
               if (grupogastossegunobjetoController1.findByIdgrupogastosegunobjeto(gg1)) {
                   for (Grupogastossegunobjeto grupogastossegunobjeto2 : grupogastossegunobjetoController1.getGrupogastossegunobjetolist()) {
                       jXComboBoxGrupoGastos.setSelectedItem(grupogastossegunobjeto2.getIdgrupogastosegunobjeto() + " - " + grupogastossegunobjeto2.getGrupogastosegunobjeto());
                   }
               } else {
                   Mensajeria.Mensaje("No existe un grupo de gastos con el codigo " + gg1.getIdgrupogastosegunobjeto());
               }
           }
      
       } catch (Exception ex) {
           Mensajeria.MensajeError(ex, "Combo");
       }

Boton Guardar int i = jXComboBoxGrupoGastos.getSelectedIndex(); Importante llamar nuevamente el metodo listar del segundo combo

           grupogastossegunobjetoController1.Listar();
           if (i != -1) {
               grupogastossegunobjeto1 = grupogastossegunobjetoController1.getGrupogastossegunobjetolist().get(i);
           } else {
               Mensajeria.Mensaje("No se ha seleccionado ningun grupo");
               return;
           }
           gastossegunobjeto1.setGastosegunobjeto(jTextFieldGasto.getText());
           gastossegunobjeto1.setIdgrupogastosegunobjeto(grupogastossegunobjeto1.getIdgrupogastosegunobjeto());
           gastossegunobjeto1.setUsername(SesionLocal.getUsername());
           gastossegunobjeto1.setFechausername(SesionLocal.getFechausername());
           if (gastossegunobjetoController1.Editar(gastossegunobjeto1)) {
               Mensajeria.Mensaje("Se actualizo el registro");
               CargarComboGastos();
           } else {
               Mensajeria.Mensaje("No se actualizo");
           }

jCheckBox

No hacer binding de checkbox
File:Jcheck.png
y validar el valor
  if (jCheckBox1.isSelected()) {
               usuario1.setActivo(true);
           } else {
               usuario1.setActivo(false);
           }
  Podemos indicar si esta seleccionado por defecto

File:Check2.png

8. Filtrar por año

String sql = "year(fecha) = '" + year + "'";
           if (acuerdosController1.Query(sql)) {
               Object[] filas = new Object[5]; // Hay tres columnas en la tabla
               for (Acuerdos a : acuerdosController1.getAcuerdoslist()) {
                   filas[0] = a.getIdacuerdo();
                   filas[1] = a.getNumacuerdo();
                   Format formatter;
                   formatter = new SimpleDateFormat("dd/MM/yyyy");
                   Date fecha = a.getFecha();
                   String MyFecha = formatter.format(fecha);
                   filas[2] = MyFecha;
                   filas[3] = a.getDetalle();
                   modelo.addRow(filas);
               }
           } else {
               Mensajeria.Mensaje("No hay registros para ese año");
           }


9. Filtrar entre fechas

java.util.Date FechaDate = jXDatePickerFechaInicio.getDate();
           java.sql.Date FechaInicio = new java.sql.Date(FechaDate.getTime());
           if (FechaInicio == null) {
                              return;
           }
           FechaDate = jXDatePickerFechaTerminacion.getDate();
           java.sql.Date FechaTerminacion = new java.sql.Date(FechaDate.getTime());
           if (FechaTerminacion == null) {
                              return;
           }
String sql ="fecha >= ' " + FechaInicio+"' + and fecha <= ' " +
FechaFin+"'";
     
 if (acuerdosController1.Query(sql)) {
               Object[] filas = new Object[5]; // Hay tres columnas en la tabla
               for (Acuerdos a : acuerdosController1.getAcuerdoslist()) {
                   filas[0] = a.getIdacuerdo();
                   filas[1] = a.getNumacuerdo();
                   Format formatter;
                   formatter = new SimpleDateFormat("dd/MM/yyyy");
                   Date fecha = a.getFecha();
                   String MyFecha = formatter.format(fecha);
                   filas[2] = MyFecha;
                   filas[3] = a.getDetalle();
                   modelo.addRow(filas);
               }
           } else {
               Mensajeria.Mensaje("No hay registros para ese año");
           }

10. Configurar Servidor Bases de Datos en el cliente

 Si tenemos instalado en el cliente 

File:SubData.png

 Editamos el archivo .jar, buscamos properties 

File:ListProperties.png

 Buscamos el archivo de Configuration

File:Configuration.png

  Cambiamos los parametros que necesitemos y guardamos el archivo

File:DataPantallazo.png

Not logged in. Log in, Register

By use of this website, you agree to the NetBeans Policies and Terms of Use. © 2012, Oracle Corporation and/or its affiliates. Sponsored by Oracle logo