tutorial base de datos en net beans swing sin asistente

52
UNIANDES DATOS PER ESCU ESCU ESCU ESCU ASIGN ASIGN ASIGN ASIGN PROF PROF PROF PROF ALUM ALUM ALUM ALUM NIVE NIVEL NIVE NIVEL FECH FECH FECH FECH CONTENIDO APLICACIONE FORMULARIOS DE ACCESO A DAT RSONALES: UELA UELA UELA UELA : Sistemas Mercantiles NATURA NATURA NATURA NATURA : Investigación Operativa FESOR FESOR FESOR FESOR : Ing. Santiago Acurio MNO MNO MNO MNO : Vinueza Pillajo Danny L L L L : Séptimo Semestre HA HA HA HA : 27-agosto-2009 O: ES DE ESCRITORIO EN NETBEANS 6.7 S TOS SIN ASISTENTE SWING

Upload: cambiar-una-estructura

Post on 12-Jun-2015

56.012 views

Category:

Education


1 download

TRANSCRIPT

Page 1: Tutorial Base De Datos En Net Beans Swing Sin Asistente

UNIANDES

DATOS PERSONALES:

ESCUELAESCUELAESCUELAESCUELA

ASIGNATURAASIGNATURAASIGNATURAASIGNATURA

PROFESORPROFESORPROFESORPROFESOR

ALUMNOALUMNOALUMNOALUMNO

NIVELNIVELNIVELNIVEL

FECHAFECHAFECHAFECHA

CONTENIDO

APLICACIONES DE ESCRITORIO EN NETBEANS 6.7

FORMULARIOS DE ACCESO A DATOS SIN ASISTENTE

DATOS PERSONALES:

ESCUELAESCUELAESCUELAESCUELA : Sistemas Mercantiles

ASIGNATURAASIGNATURAASIGNATURAASIGNATURA : Investigación Operativa

PROFESORPROFESORPROFESORPROFESOR : Ing. Santiago Acurio

ALUMNOALUMNOALUMNOALUMNO : Vinueza Pillajo Danny

NIVELNIVELNIVELNIVEL : Séptimo Semestre

FECHAFECHAFECHAFECHA : 27-agosto-2009

CONTENIDO:

APLICACIONES DE ESCRITORIO EN NETBEANS 6.7 – SWING

FORMULARIOS DE ACCESO A DATOS SIN ASISTENTE

SWING

Page 2: Tutorial Base De Datos En Net Beans Swing Sin Asistente

UNIANDES FORMULARIOS DE ACCESO A DATOS SIN ASISTE NTE

Componentes Componentes Componentes Componentes / Herramientas requeridos/ Herramientas requeridos/ Herramientas requeridos/ Herramientas requeridos

Page 3: Tutorial Base De Datos En Net Beans Swing Sin Asistente

UNIANDES FORMULARIOS DE ACCESO A DATOS SIN ASISTE NTE

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.

Page 4: Tutorial Base De Datos En Net Beans Swing Sin Asistente

UNIANDES FORMULARIOS DE ACCESO A DATOS SIN ASISTE NTE

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

Page 5: Tutorial Base De Datos En Net Beans Swing Sin Asistente

UNIANDES FORMULARIOS DE ACCESO A DATOS SIN ASISTENTE

FORMULARIOS DE ACCESO A DATOS SIN ASISTENTE

Page 6: Tutorial Base De Datos En Net Beans Swing Sin Asistente

UNIANDES FORMULARIOS DE ACCESO A DATOS SIN ASISTENTEFORMULARIOS DE ACCESO A DATOS SIN ASISTENTE

Page 7: Tutorial Base De Datos En Net Beans Swing Sin Asistente

UNIANDES FORMULARIOS DE ACCESO A DATOS SIN ASISTENTEFORMULARIOS DE ACCESO A DATOS SIN ASISTENTE

Page 8: Tutorial Base De Datos En Net Beans Swing Sin Asistente

UNIANDES FORMULARIOS DE ACCESO A DATOS SIN ASISTENTEFORMULARIOS DE ACCESO A DATOS SIN ASISTENTE

Page 9: Tutorial Base De Datos En Net Beans Swing Sin Asistente

UNIANDES FORMULARIOS DE ACCESO A DATOS SIN ASISTE NTE

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.

Page 10: Tutorial Base De Datos En Net Beans Swing Sin Asistente

UNIANDES FORMULARIOS DE ACCESO A DATOS SIN ASISTE NTE

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.

Page 11: Tutorial Base De Datos En Net Beans Swing Sin Asistente

UNIANDES FORMULARIOS DE ACCESO A DATOS SIN ASISTE NTE

Creación de la Base Datos

Page 12: Tutorial Base De Datos En Net Beans Swing Sin Asistente

UNIANDES FORMULARIOS DE ACCESO A DATOS SIN ASISTE NTE

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)

Page 13: Tutorial Base De Datos En Net Beans Swing Sin Asistente

UNIANDES FORMULARIOS DE ACCESO A DATOS SIN ASISTE NTE

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:

Page 14: Tutorial Base De Datos En Net Beans Swing Sin Asistente

UNIANDES FORMULARIOS DE ACCESO A DATOS SIN ASISTE NTE

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.

Page 15: Tutorial Base De Datos En Net Beans Swing Sin Asistente

UNIANDES FORMULARIOS DE ACCESO A DATOS SIN ASISTE NTE

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).

Page 16: Tutorial Base De Datos En Net Beans Swing Sin Asistente

UNIANDES FORMULARIOS DE ACCESO A DATOS SIN ASISTE NTE

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

luego aparecerá en la siguiente ventana .

Page 17: Tutorial Base De Datos En Net Beans Swing Sin Asistente

UNIANDES FORMULARIOS DE ACCESO A DATOS SIN ASISTE NTE

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.

Page 18: Tutorial Base De Datos En Net Beans Swing Sin Asistente

UNIANDES FORMULARIOS DE ACCESO A DATOS SIN ASISTE NTE

Conexión de la base de datos Conexión de la base de datos Conexión de la base de datos Conexión de la base de datos desdedesdedesdedesde

NetBeans 6.7.1NetBeans 6.7.1NetBeans 6.7.1NetBeans 6.7.1

Page 19: Tutorial Base De Datos En Net Beans Swing Sin Asistente

UNIANDES FORMULARIOS DE ACCESO A DATOS SIN ASISTE NTE

Al terminar de realizar la base de datos, ejecutamos NetBeans 6.7.1

Page 20: Tutorial Base De Datos En Net Beans Swing Sin Asistente

UNIANDES FORMULARIOS DE ACCESO A DATOS SIN ASISTE NTE

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…

Page 21: Tutorial Base De Datos En Net Beans Swing Sin Asistente

UNIANDES FORMULARIOS DE ACCESO A DATOS SIN ASISTE NTE

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 .

Page 22: Tutorial Base De Datos En Net Beans Swing Sin Asistente

UNIANDES FORMULARIOS DE ACCESO A DATOS SIN ASISTE NTE

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).

Page 23: Tutorial Base De Datos En Net Beans Swing Sin Asistente

UNIANDES FORMULARIOS DE ACCESO A DATOS SIN ASISTE NTE

Page 24: Tutorial Base De Datos En Net Beans Swing Sin Asistente

UNIANDES FORMULARIOS DE ACCESO A DATOS SIN ASISTE NTE

Pasos para crear un Nuevo ProyectoPasos para crear un Nuevo ProyectoPasos para crear un Nuevo ProyectoPasos para crear un Nuevo Proyecto

Page 25: Tutorial Base De Datos En Net Beans Swing Sin Asistente

UNIANDES FORMULARIOS DE ACCESO A DATOS SIN ASISTE NTE

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.

Page 26: Tutorial Base De Datos En Net Beans Swing Sin Asistente

UNIANDES FORMULARIOS DE ACCESO A DATOS SIN ASISTE NTE

Creación y carga del proyecto �

Page 27: Tutorial Base De Datos En Net Beans Swing Sin Asistente

UNIANDES FORMULARIOS DE ACCESO A DATOS SIN ASISTE NTE

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

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).

Lienzo

Page 28: Tutorial Base De Datos En Net Beans Swing Sin Asistente

UNIANDES FORMULARIOS DE ACCESO A DATOS SIN ASISTE NTE

Utilización de controlesUtilización de controlesUtilización de controlesUtilización de controles SWINGSWINGSWINGSWING

y cy cy cy conexión a datosonexión a datosonexión a datosonexión a datos

(paleta de herramientas)(paleta de herramientas)(paleta de herramientas)(paleta de herramientas)

Page 29: Tutorial Base De Datos En Net Beans Swing Sin Asistente

UNIANDES FORMULARIOS DE ACCESO A DATOS SIN ASISTE NTE

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

}

.......

.......

}

Page 30: Tutorial Base De Datos En Net Beans Swing Sin Asistente

UNIANDES FORMULARIOS DE ACCESO A DATOS SIN ASISTE NTE

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 (e ma)

ejemplomusica.EjemploMusicaAboutBox ema = new ejemp lomusica.EjemploMusicaAboutBox(null);

// Hace visible el constructor

ema.setVisible(true);

}

Page 31: Tutorial Base De Datos En Net Beans Swing Sin Asistente

UNIANDES FORMULARIOS DE ACCESO A DATOS SIN ASISTE NTE

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

Page 32: Tutorial Base De Datos En Net Beans Swing Sin Asistente

UNIANDES FORMULARIOS DE ACCESO A DATOS SIN ASISTE NTE

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)

Page 33: Tutorial Base De Datos En Net Beans Swing Sin Asistente

UNIANDES FORMULARIOS DE ACCESO A DATOS SIN ASISTE NTE

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).

Page 34: Tutorial Base De Datos En Net Beans Swing Sin Asistente

UNIANDES FORMULARIOS DE ACCESO A DATOS SIN ASISTE NTE

Pulsar en y la imagen de la tabla en el lienzo cambiará.

Page 35: Tutorial Base De Datos En Net Beans Swing Sin Asistente

UNIANDES FORMULARIOS DE ACCESO A DATOS SIN ASISTE NTE

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).

Page 36: Tutorial Base De Datos En Net Beans Swing Sin Asistente

UNIANDES FORMULARIOS DE ACCESO A DATOS SIN ASISTE NTE

Modificamos los nombres de los componentes:

Antes �

Page 37: Tutorial Base De Datos En Net Beans Swing Sin Asistente

UNIANDES FORMULARIOS DE ACCESO A DATOS SIN ASISTE NTE

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.AbstractBindingLis tener;

import org.jdesktop.beansbinding.Binding;

import org.jdesktop.beansbinding.PropertyStateEvent ;

public class EjemploMusicaView extends FrameView // inicio �

{

public EjemploMusicaView(SingleFrameApplication app) //inicio �

{

.......

.......

.......

.......

// tracking table selection

Page 38: Tutorial Base De Datos En Net Beans Swing Sin Asistente

UNIANDES FORMULARIOS DE ACCESO A DATOS SIN ASISTE NTE

masterTable.getSelectionModel().addListSel ectionListener(

new ListSelectionListener() {

public void valueChanged(ListSelec tionEvent e) {

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

}

});

// tracking changes to save

bindingGroup.addBindingListener(new Abstrac tBindingListener() {

@Override

public void targetChanged(Binding bindi ng, PropertyStateEvent event) {

// save action observes saveNeeded property

setSaveNeeded(true);

}

});

// have a transaction started

entityManager.getTransaction().begin();

} //fin �

private boolean saveNeeded; //Declaración de l a variable

public boolean isSaveNeeded() {

return saveNeeded;

}

private void setSaveNeeded(boolean saveNeeded) {

if (saveNeeded != this.saveNeeded) {

this.saveNeeded = saveNeeded;

firePropertyChange("saveNeeded", !saveN eeded, saveNeeded);

Page 39: Tutorial Base De Datos En Net Beans Swing Sin Asistente

UNIANDES FORMULARIOS DE ACCESO A DATOS SIN ASISTE NTE

}

}

public boolean isRecordSelected() {

return masterTable.getSelectedRow() != -1;

}

@Action

public void newRecord() {

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

entityManager.persist(u);

list.add(u);

int row = list.size()-1;

masterTable.setRowSelectionInterval(row, ro w);

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

setSaveNeeded(true);

}

@Action(enabledProperty = "recordSelected")

public void deleteRecord() {

int[] selected = masterTable.getSelectedRow s();

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(selecte d[idx]));

toRemove.add(u);

entityManager.remove(u);

}

list.removeAll(toRemove);

Page 40: Tutorial Base De Datos En Net Beans Swing Sin Asistente

UNIANDES FORMULARIOS DE ACCESO A DATOS SIN ASISTE NTE

setSaveNeeded(true);

}

@Action(enabledProperty = "saveNeeded")

public Task save() {

return new SaveTask(getApplication());

}

private class SaveTask extends Task {

SaveTask(org.jdesktop.application.Applicati on app) {

super(app);

}

@Override protected Void doInBackground() {

try {

entityManager.getTransaction().comm it();

entityManager.getTransaction().begi n();

} catch (RollbackException rex) {

rex.printStackTrace();

entityManager.getTransaction().begi n();

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

for (ejemplomusica.Usuarios u : lis t) {

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

}

list.clear();

list.addAll(merged);

}

return null;

}

@Override protected void finished() {

Page 41: Tutorial Base De Datos En Net Beans Swing Sin Asistente

UNIANDES FORMULARIOS DE ACCESO A DATOS SIN ASISTE NTE

setSaveNeeded(false);

}

}

/**

* An example action method showing how to crea te asynchronous tasks

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

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

* progress visualization - remove the sleeps f or real application.

*/

@Action

public Task refresh() {

return new RefreshTask(getApplication());

}

private class RefreshTask extends Task {

RefreshTask(org.jdesktop.application.Applic ation app) {

super(app);

}

@SuppressWarnings("unchecked")

@Override protected Void doInBackground() {

try {

setProgress(0, 0, 4);

setMessage("Rolling back the curren t changes...");

setProgress(1, 0, 4);

entityManager.getTransaction().roll back();

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

setProgress(2, 0, 4);

setMessage("Starting a new transact ion...");

Page 42: Tutorial Base De Datos En Net Beans Swing Sin Asistente

UNIANDES FORMULARIOS DE ACCESO A DATOS SIN ASISTE NTE

entityManager.getTransaction().begi n();

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

setProgress(3, 0, 4);

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

java.util.Collection data = query.g etResultList();

for (Object entity : data) {

entityManager.refresh(entity);

}

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

setProgress(4, 0, 4);

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

list.clear();

list.addAll(data);

} catch(InterruptedException ignore) { }

return null;

}

@Override protected void finished() {

setMessage("Done.");

setSaveNeeded(false);

}

}

.......

.......

.......

.......

} //fin �

Page 43: Tutorial Base De Datos En Net Beans Swing Sin Asistente

UNIANDES FORMULARIOS DE ACCESO A DATOS SIN ASISTE NTE

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

� deleteRecord

� refresh

� save

Page 44: Tutorial Base De Datos En Net Beans Swing Sin Asistente

UNIANDES FORMULARIOS DE ACCESO A DATOS SIN ASISTE NTE

Procedimiento adicionalProcedimiento adicionalProcedimiento adicionalProcedimiento adicional

((((Formulario desde el inicioFormulario desde el inicioFormulario desde el inicioFormulario desde el inicio))))

Page 45: Tutorial Base De Datos En Net Beans Swing Sin Asistente

UNIANDES FORMULARIOS DE ACCESO A DATOS SIN ASISTE NTE

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.

Page 46: Tutorial Base De Datos En Net Beans Swing Sin Asistente

UNIANDES FORMULARIOS DE ACCESO A DATOS SIN ASISTE NTE

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:

Page 47: Tutorial Base De Datos En Net Beans Swing Sin Asistente

UNIANDES FORMULARIOS DE ACCESO A DATOS SIN ASISTE NTE

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;

import java.util.List;

import java.util.ArrayList;

import javax.persistence.RollbackException;

public class NewJFrame extends javax.swing.JFrame

{ // inicio

/** Crea un Nuevo Formulario */

public NewJFrame()

{ // inicio

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.

Interfaces

Collection

Comparator

Enumeration

EventListener

Iterator

List

ListIterator

Map

Map.Entry

Observer

Set

SortedMap

SortedSet

Clases

AbstractCollection

AbstractList

AbstractMap

AbstractSequentialList

AbstractSet

ArrayList

Arrays

BitSet

Calendar

Collections

Date

Dictionary

EventObject

GregorianCalendar

HashMap

HashSet

Hashtable

LinkedList

ListResourceBundle

Locale

Observable

Properties

PropertyPermission

PropertyResourceBundle

Random

ResourceBundle

SimpleTimeZone

Page 48: Tutorial Base De Datos En Net Beans Swing Sin Asistente

UNIANDES FORMULARIOS DE ACCESO A DATOS SIN ASISTE NTE

initComponents();

if (!Beans.isDesignTime())

{

amanteMusicaPUEntityManager.getTransaction().begin();

}

} //fin

[Procedimiento de los botones

Nuevo,

Eliminar,

Guardar,

Actualizar,

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

} //fin

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

método 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.

Page 49: Tutorial Base De Datos En Net Beans Swing Sin Asistente

UNIANDES FORMULARIOS DE ACCESO A DATOS SIN ASISTE NTE

Para el botón Nuevo ����

@Action

public void newRecord() {

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

entityManager.persist(u);

list.add(u);

int row = list.size()-1;

masterTable.setRowSelectionInterval(row, ro w);

masterTable.scrollRectToVisible(masterTable.getCell Rect(row, 0, true));

}

Para el botón Eliminar ����

@Action

@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.

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).

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.

Page 50: Tutorial Base De Datos En Net Beans Swing Sin Asistente

UNIANDES FORMULARIOS DE ACCESO A DATOS SIN ASISTE NTE

public void deleteRecord() {

int[] selected = masterTable.getSelectedRow s();

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(selecte d[idx]));

toRemove.add(u);

entityManager.remove(u);

}

list.removeAll(toRemove);

}

Para el botón Guardar ����

@Action

public void save()

{

try {

entityManager.getTransaction().commit() ;

entityManager.getTransaction().begin();

} catch (RollbackException rex) {

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)

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)

Page 51: Tutorial Base De Datos En Net Beans Swing Sin Asistente

UNIANDES FORMULARIOS DE ACCESO A DATOS SIN ASISTE NTE

rex.printStackTrace();

entityManager.getTransaction().begin();

List<amantemusica.Usuarios> merged = ne w 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() {

entityManager.getTransaction().rollback();

entityManager.getTransaction().begin();

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

lo inserta.

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

Page 52: Tutorial Base De Datos En Net Beans Swing Sin Asistente

UNIANDES FORMULARIOS DE ACCESO A DATOS SIN ASISTE NTE

java.util.Collection data = query.getResult List();

for (Object entity : data)

{

entityManager.refresh(entity);

}

list.clear();

list.addAll(data);

}

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).

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

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.