SlideShare uma empresa Scribd logo
1 de 52
Baixar para ler offline
UNIANDES                FORMULARIOS DE ACCESO A DATOS SIN ASISTENTE




   DATOS PERSONALES:



           ESCUELA           : Sistemas Mercantiles

           ASIGNATURA        : Investigación Operativa

           PROFESOR          : Ing. Santiago Acurio

           ALUMNO            : Vinueza Pillajo Danny

           NIVEL             : Séptimo Semestre

           FECHA             : 27-agosto-2009



   CONTENIDO:
   CONTENIDO



   APLICACIONES DE ESCRITORIO EN NETBEANS 6.7 – SWING
UNIANDES        FORMULARIOS DE ACCESO A DATOS SIN ASISTENTE




       Componentes / Herramientas requeridos
UNIANDES                      FORMULARIOS DE ACCESO A DATOS SIN ASISTENTE


Los comentarios que puedan sugerirse de acuerdo a nivel de conocimiento de Java,
dependerá mucho del entendimiento de la escritura en Java, además del entendimiento
de programas adicionales.

Para la realización de un programa que pueda conectarse con una base de datos
(MySQL) debe realizar en base a herramientas independientes de NetBeans 6.7 y
justamente con el último mencionado. Esta administración de base de datos permitirá
realizar un control de los datos que disminuye considerablemente el tiempo al momento
de obtener una lista ordenada de los registros existentes.

Esta forma de acceso a datos necesita de un conjunto de herramientas para la realización
del mismo, una de ellas es el MySQL Server v5 esscencial una máquina virtual que
permitirá trabajar con la base de datos necesaria o la que va a ser creada, la cual puede
ser manipulada directamente desde MySQL Comand Line Client o no, una herramienta
que viene conjuntamente como MySQL Server v5 al momento de instalar.
UNIANDES                   FORMULARIOS DE ACCESO A DATOS SIN ASISTENTE


Un ejemplo de las instrucciones que se utilizan en este componente son:

CREATE DATABASE amanteMusica;            ←
USE amanteMusica;        ←
CREATE TABLE Usuario(

CODIGO INTEGER,

USUARIO varchar(20) NOT NULL,

CLAVE varchar(10) NOT NULL,

PRIMARY KEY (CODIGO)

);   ←




Se debe tener el cuenta que cada fin de una instrucción es con un punto y coma (;)

El MySQL Instance Config Wizard es una ayuda automatizada para configurar el servidor.
Este permite crear configuración avanzada de los archivos (my.ini o my.cnf) realizando
una serie de preguntas y aplicando sus respuestas a una interfaz generada por el archivo
de configuración durante la instalación. Esta instancia funciona solo para Windows.

Configuración
UNIANDES   FORMULARIOS DE ACCESO A DATOS SIN ASISTENTE
UNIANDES   FORMULARIOS DE ACCESO A DATOS SIN ASISTENTE
UNIANDES   FORMULARIOS DE ACCESO A DATOS SIN ASISTENTE
UNIANDES   FORMULARIOS DE ACCESO A DATOS SIN ASISTENTE
UNIANDES                     FORMULARIOS DE ACCESO A DATOS SIN ASISTENTE


Las herramientas mencionadas anteriormente, necesitan para su mejor entendimiento
características adicionales como seguridad en los datos y relación entre las tablas,
migración de datos y consultas de los registros que puedan existir.

Estas herramientas de base de datos son MySQL Migration Toolkit, MySQL
Administrator y MySQL Query Browser             mismas que se encuentran en un solo

paquete: MySQL         GUI TOOLS 5.0 r17.

Este paquete lo podemos encontrar en http://mysql-gui-tools.uptodown.com/

La primera de ellas, permite migrar a MySQL mediante el uso de un asistente una amplia
gama de sistemas gestores de base de datos, entre ellos: Oracle, Microsoft SQL Server y
Microsoft Access.

La segunda, es una consola de administración que permite bajo la misma interfaz
gestionar un servidor MySQL y llevar a cabo tareas fundamentales para su
mantenimiento.

La tercera, es una herramienta visual para crear, ejecutar y optimizar consultas SQL.
UNIANDES                     FORMULARIOS DE ACCESO A DATOS SIN ASISTENTE




Esta vez nos centraremos a crear una base de datos sencilla para demostrar su
funcionamiento y para un posterior uso, de tal forma que nos limitaremos con la
explicación, es decir, sobre el ejecutable más esencial: MySQL Administrator.
UNIANDES   FORMULARIOS DE ACCESO A DATOS SIN ASISTENTE




                Creación de la Base Datos
UNIANDES                      FORMULARIOS DE ACCESO A DATOS SIN ASISTENTE




Una vez descargadas todas las herramientas, ejecutamos MySQL Administrator de la
carpeta MySQL GUI Tools 5.0.




En su interfaz inicial será el lugar donde nos solicitará el nombre del servidor, nombre de
usuario, una contraseña y el puerto por donde se conectarán los datos; los datos
requeridos se mencionan:

Server Host     localhost

Username      root (ó nombre que insertó durante la instalación)

Password      root (ó contraseña que insertó durante la instalación)

Port   3306 (establecido de forma predeterminada, default)
UNIANDES                      FORMULARIOS DE ACCESO A DATOS SIN ASISTENTE



Pulsamos en el botón                y a continuación aparecerá la interfaz segundaria y a la
vez inicial para crear una base de datos (esquema), además muestra las características
principales que utilizo MySQL Administrador para su conexión: instancia del servidor,
información del servidor e información del cliente.




En esta imagen presentada se puede observar en el lado izquierdo una serie de tareas
que se puede utilizar. Hay que recordar que el objetivo inicial de usar estas herramientas
es crear una base de datos; este objetivo a realizarse necesita de la ayuda de una de las

tareas visualizadas                 y por tratarle como tal, la explicación de fondo será en
base a esta.

Seleccionamos la tarea mencionada:
UNIANDES                    FORMULARIOS DE ACCESO A DATOS SIN ASISTENTE




En la parte restante del lienzo donde se encuentra las bases de datos predeterminadas
(information_schemas, mysql, test) realizamos un clic derecho en este menú contextual
seleccionamos la opción Create New Schema. Esta selección originará que aparezca
una interfaz para ingresar el nombre de la base de datos a crear (amanteMusica) y luego

pulsar en el botón             . En el lienzo donde se encuentra las base de datos
aparecerá la nueva creada (amanteMusica) a la cual le damos un clic se visualizará
interfaces en un estilo de guiones expresado literalmente entre los cuales se encuentra
tablas de la base de datos (schema tables), índice de la base de datos (schema índices),
vistas (views) y procedimientos almacenados (stored procedures).




De estos guiones, usaremos tablas de la base de datos (schema tables) para crear la
base de datos.
UNIANDES                      FORMULARIOS DE ACCESO A DATOS SIN ASISTENTE




Seleccionamos el botón                  para crear la tabla y a continuación insertamos los
datos correspondientes: Nombre de la tabla, base de datos en la cual vamos a crear la
tabla, comentario (opcional) y la creación de los campos. Para la realización de este
último, una forma fácil de ingresar campos es, hacer doble clic en la fila única (al inicio)
del lienzo de Columnas e Índices donde están datos como Nombre de la Columna,
Opciones de la Tabla y Opciones Avanzadas, automáticamente se activará el lienzo para
ingresar el campo y añadir el nombre respectivo (Hacer el mismo procedimiento para
adicionar otros campos).
UNIANDES                    FORMULARIOS DE ACCESO A DATOS SIN ASISTENTE




Una vez ingresados los campos necesarios seleccionamos el botón              y

luego aparecerá en la siguiente ventana          .
UNIANDES                      FORMULARIOS DE ACCESO A DATOS SIN ASISTENTE



Una vez aplicados los cambios en la tabla creada la cerramos                            y
tendremos la vista correspondiente en tablas de la base de datos (schema tables).




Todo el procedimiento de creación base de datos que se presentó es solo una guía
básica existen otras formas de creación de base de datos, pero debemos elegir
relativamente algoritmo estructurado (paso o paso) para entender en un sentido claro y
exacto, además cabe mencionar que con esta aplicación se puede realizar relaciones
entre tablas por lo que se vuelve un ambiente interactivo y tener otra tipo de idea cuando
se trabaje en el tema de relaciones, pero eso es un subtema literal.
UNIANDES          FORMULARIOS DE ACCESO A DATOS SIN ASISTENTE




           Conexión de la base de datos desde

                                   NetBeans 6.7.1
UNIANDES                     FORMULARIOS DE ACCESO A DATOS SIN ASISTENTE


Al terminar de realizar la base de datos, ejecutamos NetBeans 6.7.1
UNIANDES                    FORMULARIOS DE ACCESO A DATOS SIN ASISTENTE




Seleccionamos la pestaña Prestaciones y encontraremos una ventana igual a la siguiente:




Aquí seleccionamos la carpeta Controladores a la cual hacemos un clic derecho y
pulsamos en Nuevo Controlador…
UNIANDES                      FORMULARIOS DE ACCESO A DATOS SIN ASISTENTE



NetBeans necesita dos archivos para su funcionamiento, un componente java instalado       (


                                       )   y además un conector para realizar la conexión

de la tabla; este conector es mysqk-connector-java-5.1.6-bin.jar y se lo distingue de



otros archivos ya que tiene extensión jar y el icono        .




Redireccione (copie) el conector a la dirección mostrada en imagen Nuevo Driver JDBC

y agréguelo. Pulse             .




                     Descargue el componente de la página que se muestra a continuación:

                 1. http://rapidlibrary.com/index.php?q=download+jre+6u6+windows+i586

                     Descargue el conector de las páginas que se muestran a continuación:

                       1. http://www.filestube.com/6701542c46b97ccd03ea/details.html


     http://gentoo.llarian.net/distfiles/mysql-connector-java-5.0.8.tar.gz



                2. http://www.jarfinder.com/index.php/jars/versionInfo/34434      (adecuado)

http://mirrors.ibiblio.org/pub/mirrors/maven2/mysql/mysql-connector-java/5.1.5/mysql-
connector-java-5.1.5.jar



Esta operación añadirá un nuevo controlador a la lista actual, y este archivos se damos un
clic derecho y escogemos la opción Conectar usando… Insertar los datos necesarios en

la nueva pantalla y presionar en             .
UNIANDES                    FORMULARIOS DE ACCESO A DATOS SIN ASISTENTE




Se presentará el link de conexión a la base de datos creada de entre los cuales se puede
distinguir otras bases propias del sistema y la que hemos creado, adicional su tabla
(usuarios).
UNIANDES   FORMULARIOS DE ACCESO A DATOS SIN ASISTENTE
UNIANDES         FORMULARIOS DE ACCESO A DATOS SIN ASISTENTE




           Pasos para crear un Nuevo Proyecto
UNIANDES                     FORMULARIOS DE ACCESO A DATOS SIN ASISTENTE




A continuación se presenta una serie de imágenes las cuales se sugiere seguir su orden;
la ubicación del proyecto nuevo a crearse se uso de forma arbitraria, por lo que es
decisión del usuario la ubicación del mismo y no afectará a posteriores cambios.
UNIANDES                 FORMULARIOS DE ACCESO A DATOS SIN ASISTENTE




Creación y carga del proyecto
UNIANDES                     FORMULARIOS DE ACCESO A DATOS SIN ASISTENTE


Pantalla inicial después del la creación del proyecto (EjemploMusica)




                                        Lienzo




En esta imagen se puede observar los paquetes de fuentes creados donde se localizan
los archivos creados organizados en grupos (META-INF.services , ejemplo música (…) ,
ejemplomusica.resources, ejemplomusica.resources.busyicons).

El proyecto SWING separa la vista y el control de un componente visual de sus

contenidos o modelo de datos                    . Sin embargo, aunque el proyecto
Swing tiene componentes que crean la arquitectura Modelo Vista Controlador, es más




seguro entenderlo como un modelo delegado                                   . Esto es
porque parte del controlador Swing, frecuentemente usa eventos del ratón y de teclado
para responder al componente, es combinada con la vista física en un objeto UI delegate
(User Interfaz delegate).
UNIANDES    FORMULARIOS DE ACCESO A DATOS SIN ASISTENTE




           Utilización de controles SWING

                             conexión
                           y conexión a datos

                   (paleta de herramientas)
UNIANDES                   FORMULARIOS DE ACCESO A DATOS SIN ASISTENTE




Durante la creación del proyecto se distintos objetos, cada uno con una función

determinada se creó un Menú                                      con nombres en ingles.

Para cambiar los nombres a español basta con hacer doble clic sobre el menú File y
escribir.




Otra forma de cambiar el nombre es, seleccionar Archivo y la paleta de propiedades en la
opción text cambiar el nombre. La acción que realice esta nueva opción se la escoge en
action (la acción debe ser creada dentro de la clase FrameView del formulario). El código
para salir se presenta a continuación:

import org.jdesktop.application.Action;

public class EjemploMusicaView extends FrameView

{

.......

.......

      @Action

      public void salir()

      {

            initComponents();

            //getRootPane().setDoubleBuffered(false);

            //getRootPane().setVisible(true);

            System.exit(0); // Para cerrar la aplicación

      }

.......

.......

}
UNIANDES                      FORMULARIOS DE ACCESO A DATOS SIN ASISTENTE




Es el mismo procedimiento para crear el formulario de la opción Acerca de…. Se usa el
siguiente código:

@Action

public void showAboutBox()

{

// Crea un constructor del paquete ejemplomusica (ema)
ejemplomusica.EjemploMusicaAboutBox ema = new ejemplomusica.EjemploMusicaAboutBox(null);

// Hace visible el constructor

     ema.setVisible(true);

}
UNIANDES                     FORMULARIOS DE ACCESO A DATOS SIN ASISTENTE




Luego de la revisión de las opciones de la barra de menú pasamos a realizar la creación
de objetos en el lienzo del formulario y cambiar de nombre:

Crear objetos




Cambiar nombre
UNIANDES                     FORMULARIOS DE ACCESO A DATOS SIN ASISTENTE




Objetos




                                           masterTable


                                           newButton


                                           deleteButton


                                           refreshButton


                                           saveButton




En la tabla creada realizamos y clic derecho, seleccionamos la opción respectiva.




Esto dará origen a la apertura de una nueva ventana; es esta seleccionamos importar
datos al formulario y luego seleccionamos el origen de los datos (base de datos)
UNIANDES                     FORMULARIOS DE ACCESO A DATOS SIN ASISTENTE




Esta operación creas varios componentes: el paquete META-INF (un objeto de
persistencia es almacenado en un archivo       u otro medio de forma permanente para
recuperarlos en tiempo posterior), un Administrador de Entidades (Persistencia de
java, instancia asociada en el contexto de una persistencia, es decir, es un paquete que
contiene clases e interfaces que define el contrato entre un proveedor de persistencia y un
director de clases    y los clientes de la persistencia de java API), una Consulta
(Persistencia de java, interfaz implementada por cada vendedor de JPA (Java Persistence
PI) para encontrar objetos persistentes manejando cierto criterio de búsqueda, podemos
obtener una instancia Query desde una instancia EntityManager ) y un Resultado de la
Consulta (Persistencia de java, obtener una lista de resultados).
UNIANDES                 FORMULARIOS DE ACCESO A DATOS SIN ASISTENTE




Pulsar en         y la imagen de la tabla en el lienzo cambiará.
UNIANDES                      FORMULARIOS DE ACCESO A DATOS SIN ASISTENTE




Una vez realizada la conexión de la tabla con la base de datos, ahora, conectamos las
cajas de texto (tres objetos) con los campos de tabla (indistintamente).
UNIANDES                 FORMULARIOS DE ACCESO A DATOS SIN ASISTENTE




Modificamos los nombres de los componentes:

Antes
UNIANDES                     FORMULARIOS DE ACCESO A DATOS SIN ASISTENTE


Después




Se deber tener activado el check observable en las propiedades del list [List] para que se
muestren los datos.

En el editor de código del formulario ingresamos en siguiente código (texto color negro):




import org.jdesktop.application.Task;

import java.util.ArrayList;

import java.util.List;

import javax.persistence.RollbackException;

import javax.swing.event.ListSelectionEvent;

import javax.swing.event.ListSelectionListener;

import org.jdesktop.beansbinding.AbstractBindingListener;

import org.jdesktop.beansbinding.Binding;

import org.jdesktop.beansbinding.PropertyStateEvent;

public class EjemploMusicaView extends FrameView //inicio

{

    public EjemploMusicaView(SingleFrameApplication app) //inicio

    {

              .......

        .......

        .......

        .......



        // tracking table selection
UNIANDES                     FORMULARIOS DE ACCESO A DATOS SIN ASISTENTE


               masterTable.getSelectionModel().addListSelectionListener(

                         new ListSelectionListener() {

                         public void valueChanged(ListSelectionEvent e) {

            firePropertyChange("recordSelected",            !isRecordSelected(),
isRecordSelected());

                     }

               });



         // tracking changes to save

         bindingGroup.addBindingListener(new AbstractBindingListener() {

               @Override

               public void targetChanged(Binding binding, PropertyStateEvent
event) {

                     // save action observes saveNeeded property

                     setSaveNeeded(true);

               }

         });



         // have a transaction started

         entityManager.getTransaction().begin();

    } //fin

    private boolean saveNeeded;                 //Declaración de la variable



    public boolean isSaveNeeded() {

         return saveNeeded;

    }



    private void setSaveNeeded(boolean saveNeeded) {

         if (saveNeeded != this.saveNeeded) {

               this.saveNeeded = saveNeeded;

               firePropertyChange("saveNeeded", !saveNeeded, saveNeeded);
UNIANDES                 FORMULARIOS DE ACCESO A DATOS SIN ASISTENTE


          }

    }



    public boolean isRecordSelected() {

          return masterTable.getSelectedRow() != -1;

    }




    @Action

    public void newRecord() {

          ejemplomusica.Usuarios u = new ejemplomusica.Usuarios();

          entityManager.persist(u);

          list.add(u);

          int row = list.size()-1;

          masterTable.setRowSelectionInterval(row, row);

          masterTable.scrollRectToVisible(masterTable.getCellRect(row,    0,
true));

          setSaveNeeded(true);

    }



    @Action(enabledProperty = "recordSelected")

    public void deleteRecord() {

          int[] selected = masterTable.getSelectedRows();

        List<ejemplomusica.Usuarios>         toRemove          =         new
ArrayList<ejemplomusica.Usuarios>(selected.length);

          for (int idx=0; idx<selected.length; idx++) {

            ejemplomusica.Usuarios                   u                     =
list.get(masterTable.convertRowIndexToModel(selected[idx]));

              toRemove.add(u);

              entityManager.remove(u);

          }

          list.removeAll(toRemove);
UNIANDES                   FORMULARIOS DE ACCESO A DATOS SIN ASISTENTE


         setSaveNeeded(true);

    }




    @Action(enabledProperty = "saveNeeded")

    public Task save() {

         return new SaveTask(getApplication());

    }



    private class SaveTask extends Task {

         SaveTask(org.jdesktop.application.Application app) {

             super(app);

         }

         @Override protected Void doInBackground() {

             try {

                   entityManager.getTransaction().commit();

                   entityManager.getTransaction().begin();

             } catch (RollbackException rex) {

                   rex.printStackTrace();

                   entityManager.getTransaction().begin();

                List<ejemplomusica.Usuarios>           merged      =       new
ArrayList<ejemplomusica.Usuarios>(list.size());

                   for (ejemplomusica.Usuarios u : list) {

                       merged.add(entityManager.merge(u));

                   }

                   list.clear();

                   list.addAll(merged);

             }

             return null;

         }

         @Override protected void finished() {
UNIANDES                FORMULARIOS DE ACCESO A DATOS SIN ASISTENTE


                setSaveNeeded(false);

            }

      }



      /**

      * An example action method showing how to create asynchronous tasks

      * (running on background) and how to show their progress. Note the

      * artificial 'Thread.sleep' calls making the task long enough to see
the

      * progress visualization - remove the sleeps for real application.

      */

      @Action

      public Task refresh() {

            return new RefreshTask(getApplication());

      }



      private class RefreshTask extends Task {

            RefreshTask(org.jdesktop.application.Application app) {

                super(app);

            }

            @SuppressWarnings("unchecked")

            @Override protected Void doInBackground() {

                try {

                     setProgress(0, 0, 4);

                     setMessage("Rolling back the current changes...");

                     setProgress(1, 0, 4);

                     entityManager.getTransaction().rollback();

                     Thread.sleep(1000L); // remove for real app

                     setProgress(2, 0, 4);



                     setMessage("Starting a new transaction...");
UNIANDES                   FORMULARIOS DE ACCESO A DATOS SIN ASISTENTE


                   entityManager.getTransaction().begin();

                   Thread.sleep(500L); // remove for real app

                   setProgress(3, 0, 4);



                   setMessage("Fetching new data...");

                   java.util.Collection data = query.getResultList();

                   for (Object entity : data) {

                       entityManager.refresh(entity);

                   }

                   Thread.sleep(1300L); // remove for real app

                   setProgress(4, 0, 4);



                   Thread.sleep(150L); // remove for real app

                   list.clear();

                   list.addAll(data);

              } catch(InterruptedException ignore) { }

              return null;

          }

          @Override protected void finished() {

              setMessage("Done.");

              setSaveNeeded(false);

          }

    }



.......

.......

.......

.......



} //fin
UNIANDES                     FORMULARIOS DE ACCESO A DATOS SIN ASISTENTE




Por último, enlazamos las cajas de texto con las acciones respectivas:




                                    deleteRecord


                                    refresh


                                    save
UNIANDES   FORMULARIOS DE ACCESO A DATOS SIN ASISTENTE




                   Procedimiento adicional

              (Formulario desde el inicio)
                                   inicio)
UNIANDES                       FORMULARIOS DE ACCESO A DATOS SIN ASISTENTE




La creación de una aplicación java mediante un proyecto estándar IDE, genera una clase
principal en el proyecto para construir, ejecutar y depurar el proyecto.

Este procedimiento lleva el mismo orden de pasos con la diferencia que este evita líneas
de código que no se puede usar (es de acuerdo a la interfaz necesario o la más adecuado
para el usuario.
UNIANDES                     FORMULARIOS DE ACCESO A DATOS SIN ASISTENTE




Esta vez nos centraremos a agregar un lienzo vacío (formulario).




A continuación realizamos los mismos pasos de la página 31 a la página 37
(creación de objetos, cambio de nombre y links) hasta tener una imagen semejante a
lo que se muestra abajo:
UNIANDES                         FORMULARIOS DE ACCESO A DATOS SIN ASISTENTE


Al terminación de llenar con objetos necesario el formulario, ingresamos en siguiente
código (solo ingresar el texto de color negro):

                                                                            Al inicio del formulario




package amantemusica [ó Nombre del paquete donde se encuentra el formulario];

import java.beans.Beans;


    Este paquete es muy útil porque pone a disposición 34 clases y 13 interfaces que implementan
    algunas de las estructuras de datos más comunes. Algunas operaciones sobre fechas y sobre
    el calendario, y otras cosas. Además el paquete java.util incluye otros subpaquetes que son:
    java.util.mime, java.util.zip y java.util.jar que sirven respectivamente para tratar archivos de tipo
    MIME, de tipo ZIP y de tipo Java Archive (JAR). Como estructura de datos, se llama a la
    estructura lógica lista para contener cierto número de datos, en la que es posible insertar,
    quitar, buscar e incluso ordenar un array.

import java.util.List;                                                        Clases

import java.util.ArrayList;                                                   AbstractCollection
                                                                              AbstractList
import javax.persistence.RollbackException;                                   AbstractMap
                                                                              AbstractSequentialList
public class NewJFrame extends javax.swing.JFrame                             AbstractSet
                                                                              ArrayList
{         // inicio                                                           Arrays
                                                                              BitSet
     /** Crea un Nuevo Formulario */                                          Calendar
                                                  Interfaces
                                                                              Collections
     public NewJFrame()                                                       Date
                                                  Collection
                                                                              Dictionary
                                                  Comparator
     {    // inicio                                                           EventObject
                                                  Enumeration
                                                                              GregorianCalendar
                                                  EventListener
                                                                              HashMap
                                                  Iterator
                                                                              HashSet
                                                  List
                                                                              Hashtable
                                                  ListIterator
                                                                              LinkedList
                                                  Map
                                                                              ListResourceBundle
                                                  Map.Entry
                                                                              Locale
                                                  Observer
                                                                              Observable
                                                  Set
                                                                              Properties
                                                  SortedMap
                                                                              PropertyPermission
                                                  SortedSet
                                                                              PropertyResourceBundle
                                                                              Random
                                                                              ResourceBundle
                                                                              SimpleTimeZone
UNIANDES                   FORMULARIOS DE ACCESO A DATOS SIN ASISTENTE




Cuando se está creando el Objeto se llama al Constructor y éste a su vez realiza una invocación al
método initComponents()


      initComponents();

Se usa para actualizar los datos de una tabla en un momento determinado, es decir está en
constante ejecución. El import java.beans.Beans es una clase vulgar para llamar a cualquier
elemento creado dentro del formulario, ente caso (if) Si en el tiempo en que se ejecuta Beans
existe un corte o pausa por medio de un objeto (botón) durante la ejecución, realiza la operación
 Es decir, mientras no se ejecute un botón de nuevo, guardar, actualizar o eliminar, no se
ejecuta la operación.


      if (!Beans.isDesignTime())

      {

             amanteMusicaPUEntityManager.getTransaction().begin();

      }

   } //fin

[Procedimiento de los botones

                   Nuevo,

                   Eliminar,

                   Guardar,

                   Actualizar,

.. , se muestran en las siguientes páginas]

 } //fin
UNIANDES                       FORMULARIOS DE ACCESO A DATOS SIN ASISTENTE




                                                                        Para el botón Nuevo

 @Action son acciones a las que responde un objeto devolviendo un valor (pulbic void), esta
 acción posee todas líneas de código de acuerdo a la función del objeto.


@Action

     public void newRecord() {

 Dentro del paquete ejemplomusica, se encuentra la clase usuarios a la que crea un constructor
 u = new … propia de dicha clase (se genera automáticamente durante el enlace de la tabla con
 los elementos de la base de datos (tabla) ) en la cual se ejecuta las procesos (seria igual a una
 clase principal (literalmente).


           amantemusica.Usuarios u = new amantemusica.Usuarios();


 Las siguientes líneas de código, ejecutan una acción de persistencia (algo parecido a un Panel
 de Control de Windows, donde están las acciones principales del sistema), en este caso añade
 una nueva línea de registro y a la vez actualiza la Tabla tomando como valores su nuevo
 intervalo de ingreso de datos (índice) y l hace visible (barra de movimiento o barra donde se
 puede ver el ingreso de los datos para luego ser grabados.



 entityManager.persist(u);

           list.add(u);

           int row = list.size()-1;

           masterTable.setRowSelectionInterval(row, row);


masterTable.scrollRectToVisible(masterTable.getCellRect(row,                                    0,
true));

     }

                                                                      Para el botón Eliminar




     @Action
UNIANDES                        FORMULARIOS DE ACCESO A DATOS SIN ASISTENTE


        public void deleteRecord() {


    Inicializa un array (entero) tomando como único valor en que se encuentra seleccionado de la
    lista (Tabla de datos). Realiza un ciclo (for) hasta buscar el valor (numero de registro) y procede
    a la eliminación .remove(u)


              int[] selected = masterTable.getSelectedRows();

              List<      amantemusica.Usuarios>               toRemove       =    new    ArrayList<
  amantemusica.Usuarios>(selected.length);

              for (int idx=0; idx<selected.length; idx++) {

                    amantemusica.Usuarios                                    u                            =
  list.get(masterTable.convertRowIndexToModel(selected[idx]));

                    toRemove.add(u);

                    entityManager.remove(u);

              }

              list.removeAll(toRemove);

        }

                                                                           Para el botón Guardar

     @Action

        public void save()

        {
Inicializa un array (entero) tomando como único valor en que se encuentra seleccionado de la
                  try {
lista (Tabla de datos). Realiza un ciclo (for) hasta buscar el valor (numero de registro) y procede
a la eliminación .remove(u)
                      entityManager.getTransaction().commit();

                    entityManager.getTransaction().begin();

              } catch (RollbackException rex) {
UNIANDES                      FORMULARIOS DE ACCESO A DATOS SIN ASISTENTE


                 rex.printStackTrace();

                 entityManager.getTransaction().begin();


 Crea un constructor para fusionar (merged) el Resultado de la Consulta (Persistencia en Java) y
 lo inserta.

                 List<amantemusica.Usuarios>               merged      =   new     ArrayList<
amantemusica.Usuarios>(list.size());

                 for (amantemusica.Usuarios u : list) {

                      merged.add(entityManager.merge(u));

                 }

                 list.clear();

                 list.addAll(merged);

           }

     }

                                                                  Para el botón Actualizar




     @Action

     public void refresh() {


   Es una operación que devuelve a la base de datos a un estado
   previo, es importante para la integridad de los datos ya que
   puede ser restaurada a una copia limpia incluso después que se
   haya realizado operaciones erróneas.

           entityManager.getTransaction().rollback();

           entityManager.getTransaction().begin();
UNIANDES                    FORMULARIOS DE ACCESO A DATOS SIN ASISTENTE




java.util.Collection es una vía para forzar a los constructores, consiste exclusivamente
de los métodos estáticos que realizan un operación o devuelve una colección.
Contiene ALGORITMOS POLIMÓRFICOS que funcionan en colecciones de datos.
query es solo el sombre de la Consulta (Persistencia en Java).



           java.util.Collection data = query.getResultList();


Object entity es una clase encapsulada de un tipo de POO, esta identidad conceptual
está basada en la combinación de valores de estas propiedades java.util.Collection
data = query.getResultList(); Por lo tanto, re describen los datos de un objeto por
uno nuevo.

       for (Object entity : data)

       {


entityManager es el nombre del Administrador de entidades (Persistencia en Java),
mismo que se relaciona con la Consulta y el Resultado de la Consulta.

               entityManager.refresh(entity);

           }

           list.clear();

           list.addAll(data);

   }

Mais conteúdo relacionado

Mais procurados

POOABD (POO Aplicada a B Datos) - RDBMS parte 2 -2020
POOABD (POO Aplicada a B Datos) - RDBMS parte 2 -2020POOABD (POO Aplicada a B Datos) - RDBMS parte 2 -2020
POOABD (POO Aplicada a B Datos) - RDBMS parte 2 -2020Laura Noussan Lettry
 
Access 2010 explicación
Access 2010 explicaciónAccess 2010 explicación
Access 2010 explicaciónZulma Bautista
 
Informe programacion leomar salas
Informe programacion leomar salasInforme programacion leomar salas
Informe programacion leomar salasLeomarSalas2
 
POOABD (POO Aplicada a B Datos) - API JDBC parte 1 -2020
POOABD (POO Aplicada a B Datos) - API JDBC parte 1 -2020POOABD (POO Aplicada a B Datos) - API JDBC parte 1 -2020
POOABD (POO Aplicada a B Datos) - API JDBC parte 1 -2020Laura Noussan Lettry
 
curso-servidores-apache-2
curso-servidores-apache-2curso-servidores-apache-2
curso-servidores-apache-2greenpeans
 
Tutorial basico bases de datos
Tutorial basico bases de datosTutorial basico bases de datos
Tutorial basico bases de datosNanaquintero22
 
Microsoft Access 2007
Microsoft Access 2007Microsoft Access 2007
Microsoft Access 2007Rolf Pinto
 
Informe conexion de base de datos visual basic 6.0
Informe conexion de base de datos visual basic 6.0Informe conexion de base de datos visual basic 6.0
Informe conexion de base de datos visual basic 6.0eymisaraiparedeslugo
 
Proyecto informatica juanita tierra
Proyecto informatica juanita tierraProyecto informatica juanita tierra
Proyecto informatica juanita tierraJuanita-Tierra
 
Manejo de sistemas gestores de bases de datos
Manejo de sistemas gestores de bases de datosManejo de sistemas gestores de bases de datos
Manejo de sistemas gestores de bases de datosalfonsobeas
 
Base de Datos. Microsoft Access 2007
Base de Datos. Microsoft Access 2007Base de Datos. Microsoft Access 2007
Base de Datos. Microsoft Access 2007Jomicast
 
Curso básico de access parte 1
Curso básico de access parte 1Curso básico de access parte 1
Curso básico de access parte 1emeldawq
 
Partes de la ventana de access
Partes de la ventana de accessPartes de la ventana de access
Partes de la ventana de accessPancho Tipanta
 
Base de datos desde vs6.0
Base de datos desde vs6.0Base de datos desde vs6.0
Base de datos desde vs6.0CsarDurango
 
Fred Bracero principales características de access
Fred Bracero  principales características de accessFred Bracero  principales características de access
Fred Bracero principales características de accessFred david
 

Mais procurados (19)

POOABD (POO Aplicada a B Datos) - RDBMS parte 2 -2020
POOABD (POO Aplicada a B Datos) - RDBMS parte 2 -2020POOABD (POO Aplicada a B Datos) - RDBMS parte 2 -2020
POOABD (POO Aplicada a B Datos) - RDBMS parte 2 -2020
 
Access 2010 explicación
Access 2010 explicaciónAccess 2010 explicación
Access 2010 explicación
 
Informe programacion leomar salas
Informe programacion leomar salasInforme programacion leomar salas
Informe programacion leomar salas
 
POOABD (POO Aplicada a B Datos) - API JDBC parte 1 -2020
POOABD (POO Aplicada a B Datos) - API JDBC parte 1 -2020POOABD (POO Aplicada a B Datos) - API JDBC parte 1 -2020
POOABD (POO Aplicada a B Datos) - API JDBC parte 1 -2020
 
curso-servidores-apache-2
curso-servidores-apache-2curso-servidores-apache-2
curso-servidores-apache-2
 
Tutorial basico bases de datos
Tutorial basico bases de datosTutorial basico bases de datos
Tutorial basico bases de datos
 
Microsoft Access 2007
Microsoft Access 2007Microsoft Access 2007
Microsoft Access 2007
 
Aleja reyes
Aleja reyesAleja reyes
Aleja reyes
 
Conexion a bases de datos
Conexion a bases de datosConexion a bases de datos
Conexion a bases de datos
 
Informe conexion de base de datos visual basic 6.0
Informe conexion de base de datos visual basic 6.0Informe conexion de base de datos visual basic 6.0
Informe conexion de base de datos visual basic 6.0
 
Proyecto informatica juanita tierra
Proyecto informatica juanita tierraProyecto informatica juanita tierra
Proyecto informatica juanita tierra
 
Manejo de sistemas gestores de bases de datos
Manejo de sistemas gestores de bases de datosManejo de sistemas gestores de bases de datos
Manejo de sistemas gestores de bases de datos
 
Partes de la ventana de access
Partes de la ventana de accessPartes de la ventana de access
Partes de la ventana de access
 
Base de Datos. Microsoft Access 2007
Base de Datos. Microsoft Access 2007Base de Datos. Microsoft Access 2007
Base de Datos. Microsoft Access 2007
 
Curso básico de access parte 1
Curso básico de access parte 1Curso básico de access parte 1
Curso básico de access parte 1
 
Partes de la ventana de access
Partes de la ventana de accessPartes de la ventana de access
Partes de la ventana de access
 
Access
AccessAccess
Access
 
Base de datos desde vs6.0
Base de datos desde vs6.0Base de datos desde vs6.0
Base de datos desde vs6.0
 
Fred Bracero principales características de access
Fred Bracero  principales características de accessFred Bracero  principales características de access
Fred Bracero principales características de access
 

Destaque

Desarrollar aplicación completa en Java con conexión base de datos MySql
Desarrollar aplicación completa en Java con conexión base de datos MySqlDesarrollar aplicación completa en Java con conexión base de datos MySql
Desarrollar aplicación completa en Java con conexión base de datos MySqlJavashi
 
Tarea2 briones
Tarea2 brionesTarea2 briones
Tarea2 brionesRandy
 
Formulario
FormularioFormulario
FormularioRandy
 
Ejercicios biblioteca7
Ejercicios biblioteca7Ejercicios biblioteca7
Ejercicios biblioteca7jpalencia
 
Manual de excel y access, con ejemplos prácticos para su entedimiento
Manual de excel y access,  con ejemplos prácticos para su entedimientoManual de excel y access,  con ejemplos prácticos para su entedimiento
Manual de excel y access, con ejemplos prácticos para su entedimientodayafernanda73
 
EJEMPLOS DESARROLLADOS
EJEMPLOS DESARROLLADOSEJEMPLOS DESARROLLADOS
EJEMPLOS DESARROLLADOSDarwin Durand
 
Base de datos con Netbeans
Base de datos con NetbeansBase de datos con Netbeans
Base de datos con NetbeansRandy
 
Manual de php con ejercicios
Manual de php con ejerciciosManual de php con ejercicios
Manual de php con ejercicioswilliam kozisck
 
Ejercicio completo colegio
Ejercicio completo colegioEjercicio completo colegio
Ejercicio completo colegiogusanchez2668
 
Práctica Completa en Access
Práctica Completa en AccessPráctica Completa en Access
Práctica Completa en Accessjubacalo
 
Mantenimiento De Datos En Netbeans
Mantenimiento De Datos En NetbeansMantenimiento De Datos En Netbeans
Mantenimiento De Datos En NetbeansRandy
 
Creación de Bases de Datos con Access 2010 desde cero
Creación de Bases de Datos con Access 2010 desde ceroCreación de Bases de Datos con Access 2010 desde cero
Creación de Bases de Datos con Access 2010 desde ceroangelamadohi
 

Destaque (15)

Desarrollar aplicación completa en Java con conexión base de datos MySql
Desarrollar aplicación completa en Java con conexión base de datos MySqlDesarrollar aplicación completa en Java con conexión base de datos MySql
Desarrollar aplicación completa en Java con conexión base de datos MySql
 
Cableado Estruturado Y Redes
Cableado Estruturado Y RedesCableado Estruturado Y Redes
Cableado Estruturado Y Redes
 
Tarea2 briones
Tarea2 brionesTarea2 briones
Tarea2 briones
 
Formulario
FormularioFormulario
Formulario
 
Ejercicios biblioteca7
Ejercicios biblioteca7Ejercicios biblioteca7
Ejercicios biblioteca7
 
Manual de excel y access, con ejemplos prácticos para su entedimiento
Manual de excel y access,  con ejemplos prácticos para su entedimientoManual de excel y access,  con ejemplos prácticos para su entedimiento
Manual de excel y access, con ejemplos prácticos para su entedimiento
 
EJEMPLOS DESARROLLADOS
EJEMPLOS DESARROLLADOSEJEMPLOS DESARROLLADOS
EJEMPLOS DESARROLLADOS
 
Base de datos con Netbeans
Base de datos con NetbeansBase de datos con Netbeans
Base de datos con Netbeans
 
Manual de php con ejercicios
Manual de php con ejerciciosManual de php con ejercicios
Manual de php con ejercicios
 
Ejercicio completo colegio
Ejercicio completo colegioEjercicio completo colegio
Ejercicio completo colegio
 
Práctica Completa en Access
Práctica Completa en AccessPráctica Completa en Access
Práctica Completa en Access
 
Mantenimiento De Datos En Netbeans
Mantenimiento De Datos En NetbeansMantenimiento De Datos En Netbeans
Mantenimiento De Datos En Netbeans
 
proyecto grado
proyecto gradoproyecto grado
proyecto grado
 
Cuaderno de Trabajo VB 6.0
Cuaderno de Trabajo VB 6.0Cuaderno de Trabajo VB 6.0
Cuaderno de Trabajo VB 6.0
 
Creación de Bases de Datos con Access 2010 desde cero
Creación de Bases de Datos con Access 2010 desde ceroCreación de Bases de Datos con Access 2010 desde cero
Creación de Bases de Datos con Access 2010 desde cero
 

Semelhante a Tutorial Base De Datos En Net Beans Swing Sin Asistente

Tutorialbasededatosennetbeansswingsinasistente 090901170542-phpapp02
Tutorialbasededatosennetbeansswingsinasistente 090901170542-phpapp02Tutorialbasededatosennetbeansswingsinasistente 090901170542-phpapp02
Tutorialbasededatosennetbeansswingsinasistente 090901170542-phpapp024489756
 
manual-access-2016.pdf
manual-access-2016.pdfmanual-access-2016.pdf
manual-access-2016.pdfcamilaCA10
 
manual-access-2016.pdf
manual-access-2016.pdfmanual-access-2016.pdf
manual-access-2016.pdfcamilaCA10
 
manual-access-2016.pdf
manual-access-2016.pdfmanual-access-2016.pdf
manual-access-2016.pdfcamilaCA10
 
Conexion bases de datos a visual basic 6.0
Conexion  bases de datos a visual basic 6.0Conexion  bases de datos a visual basic 6.0
Conexion bases de datos a visual basic 6.0bigdog10
 
Obvios herramientas de un SGDB
Obvios herramientas de un SGDBObvios herramientas de un SGDB
Obvios herramientas de un SGDBliras loca
 
Informe de base de dato1
Informe de base de dato1Informe de base de dato1
Informe de base de dato1javier-rivass
 
Informe de base de dato1
Informe de base de dato1Informe de base de dato1
Informe de base de dato1Agustin Gomes
 
Conectando visual basic 6.0 a bases de datos
Conectando visual basic 6.0 a bases de datosConectando visual basic 6.0 a bases de datos
Conectando visual basic 6.0 a bases de datosRafaelAponte16
 

Semelhante a Tutorial Base De Datos En Net Beans Swing Sin Asistente (20)

Tutorialbasededatosennetbeansswingsinasistente 090901170542-phpapp02
Tutorialbasededatosennetbeansswingsinasistente 090901170542-phpapp02Tutorialbasededatosennetbeansswingsinasistente 090901170542-phpapp02
Tutorialbasededatosennetbeansswingsinasistente 090901170542-phpapp02
 
manual-access-2016.pdf
manual-access-2016.pdfmanual-access-2016.pdf
manual-access-2016.pdf
 
manual-access-2016.pdf
manual-access-2016.pdfmanual-access-2016.pdf
manual-access-2016.pdf
 
manual-access-2016.pdf
manual-access-2016.pdfmanual-access-2016.pdf
manual-access-2016.pdf
 
manual-access-2016.pdf
manual-access-2016.pdfmanual-access-2016.pdf
manual-access-2016.pdf
 
Conexion bases de datos a visual basic 6.0
Conexion  bases de datos a visual basic 6.0Conexion  bases de datos a visual basic 6.0
Conexion bases de datos a visual basic 6.0
 
Base de Datos
Base de DatosBase de Datos
Base de Datos
 
Obvios herramientas de un SGDB
Obvios herramientas de un SGDBObvios herramientas de un SGDB
Obvios herramientas de un SGDB
 
Base De Datos Access
Base De Datos   AccessBase De Datos   Access
Base De Datos Access
 
Base De Datos Access
Base De Datos   AccessBase De Datos   Access
Base De Datos Access
 
Informe de base de dato1
Informe de base de dato1Informe de base de dato1
Informe de base de dato1
 
Informe de base de dato1
Informe de base de dato1Informe de base de dato1
Informe de base de dato1
 
Informe de base de dato1
Informe de base de dato1Informe de base de dato1
Informe de base de dato1
 
Conectando visual basic 6.0 a bases de datos
Conectando visual basic 6.0 a bases de datosConectando visual basic 6.0 a bases de datos
Conectando visual basic 6.0 a bases de datos
 
Cristian
CristianCristian
Cristian
 
Sql
SqlSql
Sql
 
Sql
SqlSql
Sql
 
Sql
SqlSql
Sql
 
ADO NET.ppt
ADO NET.pptADO NET.ppt
ADO NET.ppt
 
Sql
SqlSql
Sql
 

Último

Técnicas de grabado y estampación : procesos y materiales
Técnicas de grabado y estampación : procesos y materialesTécnicas de grabado y estampación : procesos y materiales
Técnicas de grabado y estampación : procesos y materialesRaquel Martín Contreras
 
VOLUMEN 1 COLECCION PRODUCCION BOVINA . SERIE SANIDAD ANIMAL
VOLUMEN 1 COLECCION PRODUCCION BOVINA . SERIE SANIDAD ANIMALVOLUMEN 1 COLECCION PRODUCCION BOVINA . SERIE SANIDAD ANIMAL
VOLUMEN 1 COLECCION PRODUCCION BOVINA . SERIE SANIDAD ANIMALEDUCCUniversidadCatl
 
PLANIFICACION ANUAL 2024 - INICIAL UNIDOCENTE.docx
PLANIFICACION ANUAL 2024 - INICIAL UNIDOCENTE.docxPLANIFICACION ANUAL 2024 - INICIAL UNIDOCENTE.docx
PLANIFICACION ANUAL 2024 - INICIAL UNIDOCENTE.docxJUANSIMONPACHIN
 
PROGRAMACION ANUAL DE MATEMATICA 2024.docx
PROGRAMACION ANUAL DE MATEMATICA 2024.docxPROGRAMACION ANUAL DE MATEMATICA 2024.docx
PROGRAMACION ANUAL DE MATEMATICA 2024.docxEribertoPerezRamirez
 
PPT_Formación integral y educación CRESE (1).pdf
PPT_Formación integral y educación CRESE (1).pdfPPT_Formación integral y educación CRESE (1).pdf
PPT_Formación integral y educación CRESE (1).pdfEDILIAGAMBOA
 
Presentación de Estrategias de Enseñanza-Aprendizaje Virtual.pptx
Presentación de Estrategias de Enseñanza-Aprendizaje Virtual.pptxPresentación de Estrategias de Enseñanza-Aprendizaje Virtual.pptx
Presentación de Estrategias de Enseñanza-Aprendizaje Virtual.pptxYeseniaRivera50
 
Fisiologia.Articular. 3 Kapandji.6a.Ed.pdf
Fisiologia.Articular. 3 Kapandji.6a.Ed.pdfFisiologia.Articular. 3 Kapandji.6a.Ed.pdf
Fisiologia.Articular. 3 Kapandji.6a.Ed.pdfcoloncopias5
 
libro para colorear de Peppa pig, ideal para educación inicial
libro para colorear de Peppa pig, ideal para educación iniciallibro para colorear de Peppa pig, ideal para educación inicial
libro para colorear de Peppa pig, ideal para educación inicialLorenaSanchez350426
 
FICHA DE MONITOREO Y ACOMPAÑAMIENTO 2024 MINEDU
FICHA DE MONITOREO Y ACOMPAÑAMIENTO  2024 MINEDUFICHA DE MONITOREO Y ACOMPAÑAMIENTO  2024 MINEDU
FICHA DE MONITOREO Y ACOMPAÑAMIENTO 2024 MINEDUgustavorojas179704
 
Estrategias de enseñanza - aprendizaje. Seminario de Tecnologia..pptx.pdf
Estrategias de enseñanza - aprendizaje. Seminario de Tecnologia..pptx.pdfEstrategias de enseñanza - aprendizaje. Seminario de Tecnologia..pptx.pdf
Estrategias de enseñanza - aprendizaje. Seminario de Tecnologia..pptx.pdfAlfredoRamirez953210
 
periodico mural y sus partes y caracteristicas
periodico mural y sus partes y caracteristicasperiodico mural y sus partes y caracteristicas
periodico mural y sus partes y caracteristicas123yudy
 
c3.hu3.p1.p3.El ser humano como ser histórico.pptx
c3.hu3.p1.p3.El ser humano como ser histórico.pptxc3.hu3.p1.p3.El ser humano como ser histórico.pptx
c3.hu3.p1.p3.El ser humano como ser histórico.pptxMartín Ramírez
 
DETALLES EN EL DISEÑO DE INTERIOR
DETALLES EN EL DISEÑO DE INTERIORDETALLES EN EL DISEÑO DE INTERIOR
DETALLES EN EL DISEÑO DE INTERIORGonella
 
Metabolismo 3: Anabolismo y Fotosíntesis 2024
Metabolismo 3: Anabolismo y Fotosíntesis 2024Metabolismo 3: Anabolismo y Fotosíntesis 2024
Metabolismo 3: Anabolismo y Fotosíntesis 2024IES Vicent Andres Estelles
 
Estrategia de Enseñanza y Aprendizaje.pdf
Estrategia de Enseñanza y Aprendizaje.pdfEstrategia de Enseñanza y Aprendizaje.pdf
Estrategia de Enseñanza y Aprendizaje.pdfromanmillans
 
Manejo del Dengue, generalidades, actualización marzo 2024 minsa
Manejo del Dengue, generalidades, actualización marzo 2024 minsaManejo del Dengue, generalidades, actualización marzo 2024 minsa
Manejo del Dengue, generalidades, actualización marzo 2024 minsaLuis Minaya
 
TUTORIA II - CIRCULO DORADO UNIVERSIDAD CESAR VALLEJO
TUTORIA II - CIRCULO DORADO UNIVERSIDAD CESAR VALLEJOTUTORIA II - CIRCULO DORADO UNIVERSIDAD CESAR VALLEJO
TUTORIA II - CIRCULO DORADO UNIVERSIDAD CESAR VALLEJOweislaco
 
Los Nueve Principios del Desempeño de la Sostenibilidad
Los Nueve Principios del Desempeño de la SostenibilidadLos Nueve Principios del Desempeño de la Sostenibilidad
Los Nueve Principios del Desempeño de la SostenibilidadJonathanCovena1
 
Monitoreo a los coordinadores de las IIEE JEC_28.02.2024.vf.pptx
Monitoreo a los coordinadores de las IIEE JEC_28.02.2024.vf.pptxMonitoreo a los coordinadores de las IIEE JEC_28.02.2024.vf.pptx
Monitoreo a los coordinadores de las IIEE JEC_28.02.2024.vf.pptxJUANCARLOSAPARCANARE
 

Último (20)

Técnicas de grabado y estampación : procesos y materiales
Técnicas de grabado y estampación : procesos y materialesTécnicas de grabado y estampación : procesos y materiales
Técnicas de grabado y estampación : procesos y materiales
 
VOLUMEN 1 COLECCION PRODUCCION BOVINA . SERIE SANIDAD ANIMAL
VOLUMEN 1 COLECCION PRODUCCION BOVINA . SERIE SANIDAD ANIMALVOLUMEN 1 COLECCION PRODUCCION BOVINA . SERIE SANIDAD ANIMAL
VOLUMEN 1 COLECCION PRODUCCION BOVINA . SERIE SANIDAD ANIMAL
 
PLANIFICACION ANUAL 2024 - INICIAL UNIDOCENTE.docx
PLANIFICACION ANUAL 2024 - INICIAL UNIDOCENTE.docxPLANIFICACION ANUAL 2024 - INICIAL UNIDOCENTE.docx
PLANIFICACION ANUAL 2024 - INICIAL UNIDOCENTE.docx
 
PROGRAMACION ANUAL DE MATEMATICA 2024.docx
PROGRAMACION ANUAL DE MATEMATICA 2024.docxPROGRAMACION ANUAL DE MATEMATICA 2024.docx
PROGRAMACION ANUAL DE MATEMATICA 2024.docx
 
PPT_Formación integral y educación CRESE (1).pdf
PPT_Formación integral y educación CRESE (1).pdfPPT_Formación integral y educación CRESE (1).pdf
PPT_Formación integral y educación CRESE (1).pdf
 
Presentación de Estrategias de Enseñanza-Aprendizaje Virtual.pptx
Presentación de Estrategias de Enseñanza-Aprendizaje Virtual.pptxPresentación de Estrategias de Enseñanza-Aprendizaje Virtual.pptx
Presentación de Estrategias de Enseñanza-Aprendizaje Virtual.pptx
 
DIA INTERNACIONAL DAS FLORESTAS .
DIA INTERNACIONAL DAS FLORESTAS         .DIA INTERNACIONAL DAS FLORESTAS         .
DIA INTERNACIONAL DAS FLORESTAS .
 
Fisiologia.Articular. 3 Kapandji.6a.Ed.pdf
Fisiologia.Articular. 3 Kapandji.6a.Ed.pdfFisiologia.Articular. 3 Kapandji.6a.Ed.pdf
Fisiologia.Articular. 3 Kapandji.6a.Ed.pdf
 
libro para colorear de Peppa pig, ideal para educación inicial
libro para colorear de Peppa pig, ideal para educación iniciallibro para colorear de Peppa pig, ideal para educación inicial
libro para colorear de Peppa pig, ideal para educación inicial
 
FICHA DE MONITOREO Y ACOMPAÑAMIENTO 2024 MINEDU
FICHA DE MONITOREO Y ACOMPAÑAMIENTO  2024 MINEDUFICHA DE MONITOREO Y ACOMPAÑAMIENTO  2024 MINEDU
FICHA DE MONITOREO Y ACOMPAÑAMIENTO 2024 MINEDU
 
Estrategias de enseñanza - aprendizaje. Seminario de Tecnologia..pptx.pdf
Estrategias de enseñanza - aprendizaje. Seminario de Tecnologia..pptx.pdfEstrategias de enseñanza - aprendizaje. Seminario de Tecnologia..pptx.pdf
Estrategias de enseñanza - aprendizaje. Seminario de Tecnologia..pptx.pdf
 
periodico mural y sus partes y caracteristicas
periodico mural y sus partes y caracteristicasperiodico mural y sus partes y caracteristicas
periodico mural y sus partes y caracteristicas
 
c3.hu3.p1.p3.El ser humano como ser histórico.pptx
c3.hu3.p1.p3.El ser humano como ser histórico.pptxc3.hu3.p1.p3.El ser humano como ser histórico.pptx
c3.hu3.p1.p3.El ser humano como ser histórico.pptx
 
DETALLES EN EL DISEÑO DE INTERIOR
DETALLES EN EL DISEÑO DE INTERIORDETALLES EN EL DISEÑO DE INTERIOR
DETALLES EN EL DISEÑO DE INTERIOR
 
Metabolismo 3: Anabolismo y Fotosíntesis 2024
Metabolismo 3: Anabolismo y Fotosíntesis 2024Metabolismo 3: Anabolismo y Fotosíntesis 2024
Metabolismo 3: Anabolismo y Fotosíntesis 2024
 
Estrategia de Enseñanza y Aprendizaje.pdf
Estrategia de Enseñanza y Aprendizaje.pdfEstrategia de Enseñanza y Aprendizaje.pdf
Estrategia de Enseñanza y Aprendizaje.pdf
 
Manejo del Dengue, generalidades, actualización marzo 2024 minsa
Manejo del Dengue, generalidades, actualización marzo 2024 minsaManejo del Dengue, generalidades, actualización marzo 2024 minsa
Manejo del Dengue, generalidades, actualización marzo 2024 minsa
 
TUTORIA II - CIRCULO DORADO UNIVERSIDAD CESAR VALLEJO
TUTORIA II - CIRCULO DORADO UNIVERSIDAD CESAR VALLEJOTUTORIA II - CIRCULO DORADO UNIVERSIDAD CESAR VALLEJO
TUTORIA II - CIRCULO DORADO UNIVERSIDAD CESAR VALLEJO
 
Los Nueve Principios del Desempeño de la Sostenibilidad
Los Nueve Principios del Desempeño de la SostenibilidadLos Nueve Principios del Desempeño de la Sostenibilidad
Los Nueve Principios del Desempeño de la Sostenibilidad
 
Monitoreo a los coordinadores de las IIEE JEC_28.02.2024.vf.pptx
Monitoreo a los coordinadores de las IIEE JEC_28.02.2024.vf.pptxMonitoreo a los coordinadores de las IIEE JEC_28.02.2024.vf.pptx
Monitoreo a los coordinadores de las IIEE JEC_28.02.2024.vf.pptx
 

Tutorial Base De Datos En Net Beans Swing Sin Asistente

  • 1. UNIANDES FORMULARIOS DE ACCESO A DATOS SIN ASISTENTE DATOS PERSONALES: ESCUELA : Sistemas Mercantiles ASIGNATURA : Investigación Operativa PROFESOR : Ing. Santiago Acurio ALUMNO : Vinueza Pillajo Danny NIVEL : Séptimo Semestre FECHA : 27-agosto-2009 CONTENIDO: CONTENIDO APLICACIONES DE ESCRITORIO EN NETBEANS 6.7 – SWING
  • 2. UNIANDES FORMULARIOS DE ACCESO A DATOS SIN ASISTENTE Componentes / Herramientas requeridos
  • 3. UNIANDES FORMULARIOS DE ACCESO A DATOS SIN ASISTENTE Los comentarios que puedan sugerirse de acuerdo a nivel de conocimiento de Java, dependerá mucho del entendimiento de la escritura en Java, además del entendimiento de programas adicionales. Para la realización de un programa que pueda conectarse con una base de datos (MySQL) debe realizar en base a herramientas independientes de NetBeans 6.7 y justamente con el último mencionado. Esta administración de base de datos permitirá realizar un control de los datos que disminuye considerablemente el tiempo al momento de obtener una lista ordenada de los registros existentes. Esta forma de acceso a datos necesita de un conjunto de herramientas para la realización del mismo, una de ellas es el MySQL Server v5 esscencial una máquina virtual que permitirá trabajar con la base de datos necesaria o la que va a ser creada, la cual puede ser manipulada directamente desde MySQL Comand Line Client o no, una herramienta que viene conjuntamente como MySQL Server v5 al momento de instalar.
  • 4. UNIANDES FORMULARIOS DE ACCESO A DATOS SIN ASISTENTE Un ejemplo de las instrucciones que se utilizan en este componente son: CREATE DATABASE amanteMusica; ← USE amanteMusica; ← CREATE TABLE Usuario( CODIGO INTEGER, USUARIO varchar(20) NOT NULL, CLAVE varchar(10) NOT NULL, PRIMARY KEY (CODIGO) ); ← Se debe tener el cuenta que cada fin de una instrucción es con un punto y coma (;) El MySQL Instance Config Wizard es una ayuda automatizada para configurar el servidor. Este permite crear configuración avanzada de los archivos (my.ini o my.cnf) realizando una serie de preguntas y aplicando sus respuestas a una interfaz generada por el archivo de configuración durante la instalación. Esta instancia funciona solo para Windows. Configuración
  • 5. UNIANDES FORMULARIOS DE ACCESO A DATOS SIN ASISTENTE
  • 6. UNIANDES FORMULARIOS DE ACCESO A DATOS SIN ASISTENTE
  • 7. UNIANDES FORMULARIOS DE ACCESO A DATOS SIN ASISTENTE
  • 8. UNIANDES FORMULARIOS DE ACCESO A DATOS SIN ASISTENTE
  • 9. UNIANDES FORMULARIOS DE ACCESO A DATOS SIN ASISTENTE Las herramientas mencionadas anteriormente, necesitan para su mejor entendimiento características adicionales como seguridad en los datos y relación entre las tablas, migración de datos y consultas de los registros que puedan existir. Estas herramientas de base de datos son MySQL Migration Toolkit, MySQL Administrator y MySQL Query Browser mismas que se encuentran en un solo paquete: MySQL GUI TOOLS 5.0 r17. Este paquete lo podemos encontrar en http://mysql-gui-tools.uptodown.com/ La primera de ellas, permite migrar a MySQL mediante el uso de un asistente una amplia gama de sistemas gestores de base de datos, entre ellos: Oracle, Microsoft SQL Server y Microsoft Access. La segunda, es una consola de administración que permite bajo la misma interfaz gestionar un servidor MySQL y llevar a cabo tareas fundamentales para su mantenimiento. La tercera, es una herramienta visual para crear, ejecutar y optimizar consultas SQL.
  • 10. UNIANDES FORMULARIOS DE ACCESO A DATOS SIN ASISTENTE Esta vez nos centraremos a crear una base de datos sencilla para demostrar su funcionamiento y para un posterior uso, de tal forma que nos limitaremos con la explicación, es decir, sobre el ejecutable más esencial: MySQL Administrator.
  • 11. UNIANDES FORMULARIOS DE ACCESO A DATOS SIN ASISTENTE Creación de la Base Datos
  • 12. UNIANDES FORMULARIOS DE ACCESO A DATOS SIN ASISTENTE Una vez descargadas todas las herramientas, ejecutamos MySQL Administrator de la carpeta MySQL GUI Tools 5.0. En su interfaz inicial será el lugar donde nos solicitará el nombre del servidor, nombre de usuario, una contraseña y el puerto por donde se conectarán los datos; los datos requeridos se mencionan: Server Host localhost Username root (ó nombre que insertó durante la instalación) Password root (ó contraseña que insertó durante la instalación) Port 3306 (establecido de forma predeterminada, default)
  • 13. UNIANDES FORMULARIOS DE ACCESO A DATOS SIN ASISTENTE Pulsamos en el botón y a continuación aparecerá la interfaz segundaria y a la vez inicial para crear una base de datos (esquema), además muestra las características principales que utilizo MySQL Administrador para su conexión: instancia del servidor, información del servidor e información del cliente. En esta imagen presentada se puede observar en el lado izquierdo una serie de tareas que se puede utilizar. Hay que recordar que el objetivo inicial de usar estas herramientas es crear una base de datos; este objetivo a realizarse necesita de la ayuda de una de las tareas visualizadas y por tratarle como tal, la explicación de fondo será en base a esta. Seleccionamos la tarea mencionada:
  • 14. UNIANDES FORMULARIOS DE ACCESO A DATOS SIN ASISTENTE En la parte restante del lienzo donde se encuentra las bases de datos predeterminadas (information_schemas, mysql, test) realizamos un clic derecho en este menú contextual seleccionamos la opción Create New Schema. Esta selección originará que aparezca una interfaz para ingresar el nombre de la base de datos a crear (amanteMusica) y luego pulsar en el botón . En el lienzo donde se encuentra las base de datos aparecerá la nueva creada (amanteMusica) a la cual le damos un clic se visualizará interfaces en un estilo de guiones expresado literalmente entre los cuales se encuentra tablas de la base de datos (schema tables), índice de la base de datos (schema índices), vistas (views) y procedimientos almacenados (stored procedures). De estos guiones, usaremos tablas de la base de datos (schema tables) para crear la base de datos.
  • 15. UNIANDES FORMULARIOS DE ACCESO A DATOS SIN ASISTENTE Seleccionamos el botón para crear la tabla y a continuación insertamos los datos correspondientes: Nombre de la tabla, base de datos en la cual vamos a crear la tabla, comentario (opcional) y la creación de los campos. Para la realización de este último, una forma fácil de ingresar campos es, hacer doble clic en la fila única (al inicio) del lienzo de Columnas e Índices donde están datos como Nombre de la Columna, Opciones de la Tabla y Opciones Avanzadas, automáticamente se activará el lienzo para ingresar el campo y añadir el nombre respectivo (Hacer el mismo procedimiento para adicionar otros campos).
  • 16. UNIANDES FORMULARIOS DE ACCESO A DATOS SIN ASISTENTE Una vez ingresados los campos necesarios seleccionamos el botón y luego aparecerá en la siguiente ventana .
  • 17. UNIANDES FORMULARIOS DE ACCESO A DATOS SIN ASISTENTE Una vez aplicados los cambios en la tabla creada la cerramos y tendremos la vista correspondiente en tablas de la base de datos (schema tables). Todo el procedimiento de creación base de datos que se presentó es solo una guía básica existen otras formas de creación de base de datos, pero debemos elegir relativamente algoritmo estructurado (paso o paso) para entender en un sentido claro y exacto, además cabe mencionar que con esta aplicación se puede realizar relaciones entre tablas por lo que se vuelve un ambiente interactivo y tener otra tipo de idea cuando se trabaje en el tema de relaciones, pero eso es un subtema literal.
  • 18. UNIANDES FORMULARIOS DE ACCESO A DATOS SIN ASISTENTE Conexión de la base de datos desde NetBeans 6.7.1
  • 19. UNIANDES FORMULARIOS DE ACCESO A DATOS SIN ASISTENTE Al terminar de realizar la base de datos, ejecutamos NetBeans 6.7.1
  • 20. UNIANDES FORMULARIOS DE ACCESO A DATOS SIN ASISTENTE Seleccionamos la pestaña Prestaciones y encontraremos una ventana igual a la siguiente: Aquí seleccionamos la carpeta Controladores a la cual hacemos un clic derecho y pulsamos en Nuevo Controlador…
  • 21. UNIANDES FORMULARIOS DE ACCESO A DATOS SIN ASISTENTE NetBeans necesita dos archivos para su funcionamiento, un componente java instalado ( ) y además un conector para realizar la conexión de la tabla; este conector es mysqk-connector-java-5.1.6-bin.jar y se lo distingue de otros archivos ya que tiene extensión jar y el icono . Redireccione (copie) el conector a la dirección mostrada en imagen Nuevo Driver JDBC y agréguelo. Pulse . Descargue el componente de la página que se muestra a continuación: 1. http://rapidlibrary.com/index.php?q=download+jre+6u6+windows+i586 Descargue el conector de las páginas que se muestran a continuación: 1. http://www.filestube.com/6701542c46b97ccd03ea/details.html http://gentoo.llarian.net/distfiles/mysql-connector-java-5.0.8.tar.gz 2. http://www.jarfinder.com/index.php/jars/versionInfo/34434 (adecuado) http://mirrors.ibiblio.org/pub/mirrors/maven2/mysql/mysql-connector-java/5.1.5/mysql- connector-java-5.1.5.jar Esta operación añadirá un nuevo controlador a la lista actual, y este archivos se damos un clic derecho y escogemos la opción Conectar usando… Insertar los datos necesarios en la nueva pantalla y presionar en .
  • 22. UNIANDES FORMULARIOS DE ACCESO A DATOS SIN ASISTENTE Se presentará el link de conexión a la base de datos creada de entre los cuales se puede distinguir otras bases propias del sistema y la que hemos creado, adicional su tabla (usuarios).
  • 23. UNIANDES FORMULARIOS DE ACCESO A DATOS SIN ASISTENTE
  • 24. UNIANDES FORMULARIOS DE ACCESO A DATOS SIN ASISTENTE Pasos para crear un Nuevo Proyecto
  • 25. UNIANDES FORMULARIOS DE ACCESO A DATOS SIN ASISTENTE A continuación se presenta una serie de imágenes las cuales se sugiere seguir su orden; la ubicación del proyecto nuevo a crearse se uso de forma arbitraria, por lo que es decisión del usuario la ubicación del mismo y no afectará a posteriores cambios.
  • 26. UNIANDES FORMULARIOS DE ACCESO A DATOS SIN ASISTENTE Creación y carga del proyecto
  • 27. UNIANDES FORMULARIOS DE ACCESO A DATOS SIN ASISTENTE Pantalla inicial después del la creación del proyecto (EjemploMusica) Lienzo En esta imagen se puede observar los paquetes de fuentes creados donde se localizan los archivos creados organizados en grupos (META-INF.services , ejemplo música (…) , ejemplomusica.resources, ejemplomusica.resources.busyicons). El proyecto SWING separa la vista y el control de un componente visual de sus contenidos o modelo de datos . Sin embargo, aunque el proyecto Swing tiene componentes que crean la arquitectura Modelo Vista Controlador, es más seguro entenderlo como un modelo delegado . Esto es porque parte del controlador Swing, frecuentemente usa eventos del ratón y de teclado para responder al componente, es combinada con la vista física en un objeto UI delegate (User Interfaz delegate).
  • 28. UNIANDES FORMULARIOS DE ACCESO A DATOS SIN ASISTENTE Utilización de controles SWING conexión y conexión a datos (paleta de herramientas)
  • 29. UNIANDES FORMULARIOS DE ACCESO A DATOS SIN ASISTENTE Durante la creación del proyecto se distintos objetos, cada uno con una función determinada se creó un Menú con nombres en ingles. Para cambiar los nombres a español basta con hacer doble clic sobre el menú File y escribir. Otra forma de cambiar el nombre es, seleccionar Archivo y la paleta de propiedades en la opción text cambiar el nombre. La acción que realice esta nueva opción se la escoge en action (la acción debe ser creada dentro de la clase FrameView del formulario). El código para salir se presenta a continuación: import org.jdesktop.application.Action; public class EjemploMusicaView extends FrameView { ....... ....... @Action public void salir() { initComponents(); //getRootPane().setDoubleBuffered(false); //getRootPane().setVisible(true); System.exit(0); // Para cerrar la aplicación } ....... ....... }
  • 30. UNIANDES FORMULARIOS DE ACCESO A DATOS SIN ASISTENTE Es el mismo procedimiento para crear el formulario de la opción Acerca de…. Se usa el siguiente código: @Action public void showAboutBox() { // Crea un constructor del paquete ejemplomusica (ema) ejemplomusica.EjemploMusicaAboutBox ema = new ejemplomusica.EjemploMusicaAboutBox(null); // Hace visible el constructor ema.setVisible(true); }
  • 31. UNIANDES FORMULARIOS DE ACCESO A DATOS SIN ASISTENTE Luego de la revisión de las opciones de la barra de menú pasamos a realizar la creación de objetos en el lienzo del formulario y cambiar de nombre: Crear objetos Cambiar nombre
  • 32. UNIANDES FORMULARIOS DE ACCESO A DATOS SIN ASISTENTE Objetos masterTable newButton deleteButton refreshButton saveButton En la tabla creada realizamos y clic derecho, seleccionamos la opción respectiva. Esto dará origen a la apertura de una nueva ventana; es esta seleccionamos importar datos al formulario y luego seleccionamos el origen de los datos (base de datos)
  • 33. UNIANDES FORMULARIOS DE ACCESO A DATOS SIN ASISTENTE Esta operación creas varios componentes: el paquete META-INF (un objeto de persistencia es almacenado en un archivo u otro medio de forma permanente para recuperarlos en tiempo posterior), un Administrador de Entidades (Persistencia de java, instancia asociada en el contexto de una persistencia, es decir, es un paquete que contiene clases e interfaces que define el contrato entre un proveedor de persistencia y un director de clases y los clientes de la persistencia de java API), una Consulta (Persistencia de java, interfaz implementada por cada vendedor de JPA (Java Persistence PI) para encontrar objetos persistentes manejando cierto criterio de búsqueda, podemos obtener una instancia Query desde una instancia EntityManager ) y un Resultado de la Consulta (Persistencia de java, obtener una lista de resultados).
  • 34. UNIANDES FORMULARIOS DE ACCESO A DATOS SIN ASISTENTE Pulsar en y la imagen de la tabla en el lienzo cambiará.
  • 35. UNIANDES FORMULARIOS DE ACCESO A DATOS SIN ASISTENTE Una vez realizada la conexión de la tabla con la base de datos, ahora, conectamos las cajas de texto (tres objetos) con los campos de tabla (indistintamente).
  • 36. UNIANDES FORMULARIOS DE ACCESO A DATOS SIN ASISTENTE Modificamos los nombres de los componentes: Antes
  • 37. UNIANDES FORMULARIOS DE ACCESO A DATOS SIN ASISTENTE Después Se deber tener activado el check observable en las propiedades del list [List] para que se muestren los datos. En el editor de código del formulario ingresamos en siguiente código (texto color negro): import org.jdesktop.application.Task; import java.util.ArrayList; import java.util.List; import javax.persistence.RollbackException; import javax.swing.event.ListSelectionEvent; import javax.swing.event.ListSelectionListener; import org.jdesktop.beansbinding.AbstractBindingListener; import org.jdesktop.beansbinding.Binding; import org.jdesktop.beansbinding.PropertyStateEvent; public class EjemploMusicaView extends FrameView //inicio { public EjemploMusicaView(SingleFrameApplication app) //inicio { ....... ....... ....... ....... // tracking table selection
  • 38. UNIANDES FORMULARIOS DE ACCESO A DATOS SIN ASISTENTE masterTable.getSelectionModel().addListSelectionListener( new ListSelectionListener() { public void valueChanged(ListSelectionEvent e) { firePropertyChange("recordSelected", !isRecordSelected(), isRecordSelected()); } }); // tracking changes to save bindingGroup.addBindingListener(new AbstractBindingListener() { @Override public void targetChanged(Binding binding, PropertyStateEvent event) { // save action observes saveNeeded property setSaveNeeded(true); } }); // have a transaction started entityManager.getTransaction().begin(); } //fin private boolean saveNeeded; //Declaración de la variable public boolean isSaveNeeded() { return saveNeeded; } private void setSaveNeeded(boolean saveNeeded) { if (saveNeeded != this.saveNeeded) { this.saveNeeded = saveNeeded; firePropertyChange("saveNeeded", !saveNeeded, saveNeeded);
  • 39. UNIANDES FORMULARIOS DE ACCESO A DATOS SIN ASISTENTE } } public boolean isRecordSelected() { return masterTable.getSelectedRow() != -1; } @Action public void newRecord() { ejemplomusica.Usuarios u = new ejemplomusica.Usuarios(); entityManager.persist(u); list.add(u); int row = list.size()-1; masterTable.setRowSelectionInterval(row, row); masterTable.scrollRectToVisible(masterTable.getCellRect(row, 0, true)); setSaveNeeded(true); } @Action(enabledProperty = "recordSelected") public void deleteRecord() { int[] selected = masterTable.getSelectedRows(); List<ejemplomusica.Usuarios> toRemove = new ArrayList<ejemplomusica.Usuarios>(selected.length); for (int idx=0; idx<selected.length; idx++) { ejemplomusica.Usuarios u = list.get(masterTable.convertRowIndexToModel(selected[idx])); toRemove.add(u); entityManager.remove(u); } list.removeAll(toRemove);
  • 40. UNIANDES FORMULARIOS DE ACCESO A DATOS SIN ASISTENTE setSaveNeeded(true); } @Action(enabledProperty = "saveNeeded") public Task save() { return new SaveTask(getApplication()); } private class SaveTask extends Task { SaveTask(org.jdesktop.application.Application app) { super(app); } @Override protected Void doInBackground() { try { entityManager.getTransaction().commit(); entityManager.getTransaction().begin(); } catch (RollbackException rex) { rex.printStackTrace(); entityManager.getTransaction().begin(); List<ejemplomusica.Usuarios> merged = new ArrayList<ejemplomusica.Usuarios>(list.size()); for (ejemplomusica.Usuarios u : list) { merged.add(entityManager.merge(u)); } list.clear(); list.addAll(merged); } return null; } @Override protected void finished() {
  • 41. UNIANDES FORMULARIOS DE ACCESO A DATOS SIN ASISTENTE setSaveNeeded(false); } } /** * An example action method showing how to create asynchronous tasks * (running on background) and how to show their progress. Note the * artificial 'Thread.sleep' calls making the task long enough to see the * progress visualization - remove the sleeps for real application. */ @Action public Task refresh() { return new RefreshTask(getApplication()); } private class RefreshTask extends Task { RefreshTask(org.jdesktop.application.Application app) { super(app); } @SuppressWarnings("unchecked") @Override protected Void doInBackground() { try { setProgress(0, 0, 4); setMessage("Rolling back the current changes..."); setProgress(1, 0, 4); entityManager.getTransaction().rollback(); Thread.sleep(1000L); // remove for real app setProgress(2, 0, 4); setMessage("Starting a new transaction...");
  • 42. UNIANDES FORMULARIOS DE ACCESO A DATOS SIN ASISTENTE entityManager.getTransaction().begin(); Thread.sleep(500L); // remove for real app setProgress(3, 0, 4); setMessage("Fetching new data..."); java.util.Collection data = query.getResultList(); for (Object entity : data) { entityManager.refresh(entity); } Thread.sleep(1300L); // remove for real app setProgress(4, 0, 4); Thread.sleep(150L); // remove for real app list.clear(); list.addAll(data); } catch(InterruptedException ignore) { } return null; } @Override protected void finished() { setMessage("Done."); setSaveNeeded(false); } } ....... ....... ....... ....... } //fin
  • 43. UNIANDES FORMULARIOS DE ACCESO A DATOS SIN ASISTENTE Por último, enlazamos las cajas de texto con las acciones respectivas: deleteRecord refresh save
  • 44. UNIANDES FORMULARIOS DE ACCESO A DATOS SIN ASISTENTE Procedimiento adicional (Formulario desde el inicio) inicio)
  • 45. UNIANDES FORMULARIOS DE ACCESO A DATOS SIN ASISTENTE La creación de una aplicación java mediante un proyecto estándar IDE, genera una clase principal en el proyecto para construir, ejecutar y depurar el proyecto. Este procedimiento lleva el mismo orden de pasos con la diferencia que este evita líneas de código que no se puede usar (es de acuerdo a la interfaz necesario o la más adecuado para el usuario.
  • 46. UNIANDES FORMULARIOS DE ACCESO A DATOS SIN ASISTENTE Esta vez nos centraremos a agregar un lienzo vacío (formulario). A continuación realizamos los mismos pasos de la página 31 a la página 37 (creación de objetos, cambio de nombre y links) hasta tener una imagen semejante a lo que se muestra abajo:
  • 47. UNIANDES FORMULARIOS DE ACCESO A DATOS SIN ASISTENTE Al terminación de llenar con objetos necesario el formulario, ingresamos en siguiente código (solo ingresar el texto de color negro): Al inicio del formulario package amantemusica [ó Nombre del paquete donde se encuentra el formulario]; import java.beans.Beans; Este paquete es muy útil porque pone a disposición 34 clases y 13 interfaces que implementan algunas de las estructuras de datos más comunes. Algunas operaciones sobre fechas y sobre el calendario, y otras cosas. Además el paquete java.util incluye otros subpaquetes que son: java.util.mime, java.util.zip y java.util.jar que sirven respectivamente para tratar archivos de tipo MIME, de tipo ZIP y de tipo Java Archive (JAR). Como estructura de datos, se llama a la estructura lógica lista para contener cierto número de datos, en la que es posible insertar, quitar, buscar e incluso ordenar un array. import java.util.List; Clases import java.util.ArrayList; AbstractCollection AbstractList import javax.persistence.RollbackException; AbstractMap AbstractSequentialList public class NewJFrame extends javax.swing.JFrame AbstractSet ArrayList { // inicio Arrays BitSet /** Crea un Nuevo Formulario */ Calendar Interfaces Collections public NewJFrame() Date Collection Dictionary Comparator { // inicio EventObject Enumeration GregorianCalendar EventListener HashMap Iterator HashSet List Hashtable ListIterator LinkedList Map ListResourceBundle Map.Entry Locale Observer Observable Set Properties SortedMap PropertyPermission SortedSet PropertyResourceBundle Random ResourceBundle SimpleTimeZone
  • 48. UNIANDES FORMULARIOS DE ACCESO A DATOS SIN ASISTENTE Cuando se está creando el Objeto se llama al Constructor y éste a su vez realiza una invocación al método initComponents() initComponents(); Se usa para actualizar los datos de una tabla en un momento determinado, es decir está en constante ejecución. El import java.beans.Beans es una clase vulgar para llamar a cualquier elemento creado dentro del formulario, ente caso (if) Si en el tiempo en que se ejecuta Beans existe un corte o pausa por medio de un objeto (botón) durante la ejecución, realiza la operación  Es decir, mientras no se ejecute un botón de nuevo, guardar, actualizar o eliminar, no se ejecuta la operación. if (!Beans.isDesignTime()) { amanteMusicaPUEntityManager.getTransaction().begin(); } } //fin [Procedimiento de los botones Nuevo, Eliminar, Guardar, Actualizar, .. , se muestran en las siguientes páginas] } //fin
  • 49. UNIANDES FORMULARIOS DE ACCESO A DATOS SIN ASISTENTE Para el botón Nuevo @Action son acciones a las que responde un objeto devolviendo un valor (pulbic void), esta acción posee todas líneas de código de acuerdo a la función del objeto. @Action public void newRecord() { Dentro del paquete ejemplomusica, se encuentra la clase usuarios a la que crea un constructor u = new … propia de dicha clase (se genera automáticamente durante el enlace de la tabla con los elementos de la base de datos (tabla) ) en la cual se ejecuta las procesos (seria igual a una clase principal (literalmente). amantemusica.Usuarios u = new amantemusica.Usuarios(); Las siguientes líneas de código, ejecutan una acción de persistencia (algo parecido a un Panel de Control de Windows, donde están las acciones principales del sistema), en este caso añade una nueva línea de registro y a la vez actualiza la Tabla tomando como valores su nuevo intervalo de ingreso de datos (índice) y l hace visible (barra de movimiento o barra donde se puede ver el ingreso de los datos para luego ser grabados. entityManager.persist(u); list.add(u); int row = list.size()-1; masterTable.setRowSelectionInterval(row, row); masterTable.scrollRectToVisible(masterTable.getCellRect(row, 0, true)); } Para el botón Eliminar @Action
  • 50. UNIANDES FORMULARIOS DE ACCESO A DATOS SIN ASISTENTE public void deleteRecord() { Inicializa un array (entero) tomando como único valor en que se encuentra seleccionado de la lista (Tabla de datos). Realiza un ciclo (for) hasta buscar el valor (numero de registro) y procede a la eliminación .remove(u) int[] selected = masterTable.getSelectedRows(); List< amantemusica.Usuarios> toRemove = new ArrayList< amantemusica.Usuarios>(selected.length); for (int idx=0; idx<selected.length; idx++) { amantemusica.Usuarios u = list.get(masterTable.convertRowIndexToModel(selected[idx])); toRemove.add(u); entityManager.remove(u); } list.removeAll(toRemove); } Para el botón Guardar @Action public void save() { Inicializa un array (entero) tomando como único valor en que se encuentra seleccionado de la try { lista (Tabla de datos). Realiza un ciclo (for) hasta buscar el valor (numero de registro) y procede a la eliminación .remove(u) entityManager.getTransaction().commit(); entityManager.getTransaction().begin(); } catch (RollbackException rex) {
  • 51. UNIANDES FORMULARIOS DE ACCESO A DATOS SIN ASISTENTE rex.printStackTrace(); entityManager.getTransaction().begin(); Crea un constructor para fusionar (merged) el Resultado de la Consulta (Persistencia en Java) y lo inserta. List<amantemusica.Usuarios> merged = new ArrayList< amantemusica.Usuarios>(list.size()); for (amantemusica.Usuarios u : list) { merged.add(entityManager.merge(u)); } list.clear(); list.addAll(merged); } } Para el botón Actualizar @Action public void refresh() { Es una operación que devuelve a la base de datos a un estado previo, es importante para la integridad de los datos ya que puede ser restaurada a una copia limpia incluso después que se haya realizado operaciones erróneas. entityManager.getTransaction().rollback(); entityManager.getTransaction().begin();
  • 52. UNIANDES FORMULARIOS DE ACCESO A DATOS SIN ASISTENTE java.util.Collection es una vía para forzar a los constructores, consiste exclusivamente de los métodos estáticos que realizan un operación o devuelve una colección. Contiene ALGORITMOS POLIMÓRFICOS que funcionan en colecciones de datos. query es solo el sombre de la Consulta (Persistencia en Java). java.util.Collection data = query.getResultList(); Object entity es una clase encapsulada de un tipo de POO, esta identidad conceptual está basada en la combinación de valores de estas propiedades java.util.Collection data = query.getResultList(); Por lo tanto, re describen los datos de un objeto por uno nuevo. for (Object entity : data) { entityManager es el nombre del Administrador de entidades (Persistencia en Java), mismo que se relaciona con la Consulta y el Resultado de la Consulta. entityManager.refresh(entity); } list.clear(); list.addAll(data); }