You are on page 1of 220

Seminario de Programacin Orientada a Objetos

El Lenguaje de Programacin Java Jimmy Vlez Muoz jvelez@usb.edu.co

Contenido del Seminario


Introduccin y Fundamentos de Java Los Primeros Pasos en Java El Lenguaje de Programacin Java: Parte 1 Java en el Lado del Cliente (Applets) El Lenguaje de Programacin Java: Parte II Acceso a Bases de Datos con Java: JDBC Java en el Lado del Servidor (Servlets)

Objetivos
Conocer los principios fundamentales de la programacin orientada a objetos con el Lenguaje Java. Preparar a los participantes en el desarrollo de aplicaciones Java que accesan bases de datos. Entender los fundamentos del desarrollo de aplicaciones Java, tanto en el lado del cliente como en el lado del servidor.

INTRODUCCIN Y FUNDAMENTOS DE JAVA

Origenes del Lenguaje Java


Proyecto Green financiado por SUN Microsystems en 1991. James Gosling crea el lenguaje OAK, basado en caractersticas de C y C++. El nombre se cambia de OAK a JAVA, ya que exista otro lenguaje con ese nombre.

Origenes del Lenguaje Java


El nombre JAVA (Como se le conoce al caf en ingls) se pone por sugerencia de un empleado de SUN. En 1992 el proyecto Green se ve en problemas. En 1993 la explosin de la WWW fue el caldo de cultivo de JAVA.

Origenes del Lenguaje Java


JAVA fue diseado para aumentar el potencial de la WWW y en el mes de Mayo de 1995 se hace su lanzamiento oficial.

Qu es JAVA?
Java es fundamentalmente una nueva forma de computacin, basada en el poder de las redes y en la idea de que el mismo software puede correr en diferentes tipos de mquinas y sistemas operativos.

Por qu Java es Importante?


Java permite realizar cosas que antes eran impensables:
Los usuarios pueden accesar informacin remotamente de una forma segura por medio de un Browser e Internet. Aumento del uso de la computacin distribuida. Desarrollo de componentes. Industrializacin del proceso de desarrollo de software.

Cmo trabaja la plataforma Java?


Los programas escritos en JAVA corren en muchas plataformas distintas gracias a la JVM o Java Virtual Machine.

Cmo trabaja la plataforma Java?

El software de Java est embebido en el dispositivo o se encuentra en el disco del computador. El software contiene una interfaz de usuario para la ejecucin de ordenes. La JVM interpreta las instrucciones del software escrito en JAVA y las ejecuta. El SO brinda el soporte a la JVM para realizar las operaciones.

Caractersticas del Lenguaje Java


Portable

Simple

Interpretado

Orientado a Objetos

Seguro

Dinmico

Multihilo

Java es Simple
La concepcin del Lenguaje fue simple desde su inicio. Este lenguaje oculta toda la dificultad que trae programar con otros lenguajes como el C++ y el uso de punteros.

Java es Orientado a Objetos


Java es un lenguaje que utiliza todas las caractersticas de los lenguajes orientados a objetos:
Clases Objetos Encapsulamiento Herencia Polimorfismo

Java es Portable
Java es portable gracias a su Mquina Virtual. El compilador de Java genera cdigo transportable entre diferentes plataformas (bytecode).
Windows 9x
Cdigo Fuente (.java)

Windows NT

Compilador de Java

Unix/Linux
ByteCode (.class)

Interpretadores del ByteCode

Java es Interpretado
La mquina virtual de Java Interpreta el bytecode generado por el compilador. La lenta ejecucin de los programas y applets escritos en Java se debe en gran parte a este proceso. Sin embargo la potencialidad que tiene Java se debe a su carcter interpretado.

Java es Seguro
El diseo de la seguridad es un asunto crucial en el desarrollo de aplicaciones distribuidas. Hay cuatro aspectos de seguridad que Java tiene en cuenta:
Polticas de Seguridad Privacidad Autenticacin Seguridad

Java es Dinmico
Java remueve el manejo de memoria dinmica del programador. Para Java el manejo de objetos se hace por medio de referencias a estos. El programador no debe preocuparse por reservar o liberar memoria. Existe un colector de basura que lo hace todo por usted.

Java es Multihilo
Los programas, especialmente los programas de PC, son usualmente programas de un solo hilo. La CPU no puede actualizar la pantalla y hacer lectura y escritura en el disco al mismo tiempo. Java brinda el soporte para ejecutar varios hilos (procesos) al tiempo.

Beneficios del Lenguaje Java


Es un lenguaje ptimo para Internet. No permite el uso de variables globales, ya que el nico espacio global es la jerarqua de clases. No utiliza punteros. Implementa un recolector de basura. No tiene un preprocesador como el de Cy C++. Conjunto de clases ncleo para el manejo de redes, cadenas, hilos, errores, etc.

Usos del Lenguaje Java


Servidores de aplicaciones Herramientas de desarrollo Conectividad de Bases de Datos Comercio Electrnico Entretenimiento Servicios Financieros Salud Manufactura Multimedia Administracin de redes Generadores de reportes Administracin de Sistemas Telecomunicaciones Servidores WEB

Java vs. otros Lenguajes a Objetos


Simple OO Robusto Seguro Interpretado Dinmico Portable Neutral Multihilo Rec. Basura Excepciones Rendimiento Java S S S S S S S S S S S Alto SmallTalk S S S Regular S S Regular Regular No S S Medio Perl Regular S S S S S No S S No S Medio C Regular No No No No No Regular No No No No Muy Alto C++ No Regular S S No No Regular No No No S Muy Alto

Recursos de Java en Internet


www.javasoft.com www.javalobby.org www.javaworld.com www.javareport.com www.jars.com www.developer.com www.sys-con.com/java www.sun.com www.servlets.com

LOS PRIMEROS PASOS EN JAVA


El Java Developer Kit (JDK), La API de Java, Tipos de Aplicaciones, etc.

El Java Developer Kit (JDK)


El Kit de Desarrollo de Java, es un conjunto de herramientas bsicas que proporcionan entre otras cosas, un interpretador de java, un compilador, un descompilador, un generador automtico de documentacin en html, etc. Actualmente ya hay entornos de desarrollo integrados completos para Java, diferentes del JDK de Sun. Symantec, Symantec Caf. Borland, JBuilder. Sun, Java WorkShop. Microsoft, Visual J++. IBM, VisualAge for Java, etc.

Tipos de Aplicaciones en Java


Java Applets Aplicaciones Standalone Paquetes Java Servlets JavaBeans

Java Applets
Son miniaplicaciones que se ejecutan por medio de un Browser, a travs de una pgina HTML.
Peticin de la Pgina

<html> ... <applet ....> </html>

Aplicaciones Standalone
Estos aplicactivos de Java no necesitan un browser para ser ejecutados Estas aplicaciones se ejecutan con la ayuda de la mquina virtual de Java.

Paquetes
Un paquete en Java es un conjunto de clases que guardan un propsito comn. Estos paquetes se encuentran constituidos en archivos que normalmente estn comprimidos en zip, jar, etc.

Paquete java.awt

Paquete java.net

Java Servlets
Un servlet de Java es una aplicacin que se ejecuta en el servidor. Esta aplicacin no viaja hasta el cliente para ser interpretada por la mquina virtual del navegador. Por el contrario el servlet lo interpreta la mquina virtual del servidor.

JavaBeans
Los JavaBeans son componentes de software reutilizables que pueden unirse visualmente en otros componentes, applets, aplicaciones y servlets, utilizando herramientas visuales de desarrollo. Una herramienta de desarrollo que soporte JavaBeans, mantiene los Beans en un paleta o caja de herramientas. Se puede seleccionar un Bean de la paleta, arrastarlo dentro de un formulario, modificar su apariencia y su comportamiento, definir su interaccin con otros Beans, y componer un applet, una aplicacin, o un nuevo Bean, junto con otros Beans. Todo esto se puede hacer sin escribir una lnea de cdigo.

Instalacin del Kit de Desarrollo de Java


JDK1.3 (Java 2), necesita de 60 MB de espacio en disco. La variable CLASSPATH, se requiere para que el compilador encuentre los paquetes y las clases que usamos en nuestros programas. Es recomendable poner en el PATH del sistema la ruta donde se encuentra instalado el compilador y las herramientas de Java, para que puedan ser invocadas desde cualquier lugar.

La API de Java
La Interfaz de Programa de Aplicacin de JAVA, o API, es un conjunto de clases desarrolladas por Sun para ser usadas con el lenguaje de programacin JAVA. Estas fueron diseadas para asistir al programador en el desarrollo de sus propias clases, applets, y aplicaciones.

La API de Java
Las clases en Java se agrupan en paquetes. Entre estos paquetes tenemos:
java.lang java.corba java.awt java.applet java.io java.sql

Paquete java.lang
Este paquete consiste de clases que son el corazn del lenguaje JAVA. Este paquete incluye no slo envolturas para los tipos de datos bsicos como Integer y String, sino tambin la manera de manejar errores por medio de las clases Throwable y Error.

Paquete java.io
El paquete java.io sirve como la biblioteca estndar de entrada y salida para el lenguaje JAVA. Este paquete le permite un nmero ilimitado de posibilidades de comunicacin al proporcionarle tanto tipos sencillos como la clase StringBufferInputStream o complejos como la clase RandomAccessFile.

Pauqte java.util
Este paquete es, esencialmente, una variedad de clases tiles que no pertenecen a ningn otro paquete. Entre estas clases prcticas se encuentran la clase Date, diseada para manipular y manejar las operaciones con fechas, la clase Hashtable y los TADs (Tipos Abstractos de Datos), como Stack y Vector.

Paquete java.net
Ya que JAVA es un lenguaje basado en red, este relativamente pequeo paquete resulta ser muy til. Sobre todo, le proporciona la capacidad de comunicarse con otras fuentes de informacin creando o conectndose a sockets o haciendo uso de los URLs y direcciones de Internet.

Paquete java.awt
El Abstract Window Toolkit (AWT) de JAVA contiene los recursos que usted necesita para crear interfaces atractivas y tiles para sus applets. El AWT no slo tiene herramientas de control, como el LayoutManager y Container, sino que tambin cuenta con herramientas interactivas concretas, como Button y TextField.

Paquete java.applet
El paquete java.applet proporciona una sola clase y tres interfaces, pero es uno de los paquetes ms usados porque es la base de todos los applets. La clase Applet es de suma importancia porque es necesaria cuando se crea un applet. Tambin es til la interfaz AppletContext, la cual se usa para interacturar con el navegador.

Una Mnima aplicacin en Java


// importamos los paquetes import java.applet.*; import java.awt.*; // la clase que se hereda de Applet public class HolaMundo extends Applet{ public void paint(Graphics contexto){ contexto.drawString("Mi Primer Applet",50,30); } }

El archivo HTML
<html> <title>Mi Primer Applet </title> <body> <h1>El applet Hola Mundo :</h1> <hr> <applet code=HolaMundo.class width=200 height=100></applet> <hr> </body> </html>

El Lenguaje de Programacin Java


Parte 1: Comentarios, Palabras Reservadas, Operadores, Control de Flujo, Arreglos y Cadenas, etc.

Comentarios en Java
Comentarios de una lnea:
// Este es un comentario de una sola lnea

Comentarios de varias lneas:


/* Este es un comentario que tiene varias lneas */

Palabras Reservadas del Lenguaje Java


abstract case class do final future implements int new package rest super throw var boolean cast const double ninally generic import interface null private return switch throws void break catch continue else float goto inner long operator protected short synchronized transient volatile byte char default extends for if instanceof native outer public static this try while

Operadores en Java
Los operadores realizan algunas funciones en uno o dos operandos. Los operadores que requieren un operador se llaman operadores unarios. Los operadores que requieren dos operandos se llaman operadores binarios. Los operadores unarios en Java pueden utilizar la notacin de prefijo o de sufijo.

Operadores en Java
Podemos encontrar los siguientes tipos:
Aritmticos Relacionales Condicionales Desplazamiento Asignacin

Resumen de Operadores en Java


Tipo Aritmticos Relacionales Condicionales Desplazamiento Asignacin Operadores +,-,*,/,%,++,->,>=,<,<=,==,!= &&,||,! >>,<<,>>>,&,|,^,~ +=,-=,*=,/=,%=,&=, |=,^=,<<=,>>=, >>>=

Variables y Tipos de Datos


Todas las variables en el lenguaje Java deben tener un tipo de dato. El tipo de la variable determina los valores que la variable puede contener y las operaciones que se pueden realizar con ella. Existen dos categorias de datos principales en el lenguaje Java: los tipos primitivos y los tipos referenciados. Los tipos primitivos contienen un slo valor e incluyen los tipos como los enteros, coma flotante, los caracteres, etc...

Tipos de Datos Primitivos


Tipo byte short int long float double char boolean Tamao 8 bits 16 bits 32 bits 64 bits 32 bits 64 bits 16 bits 1 bit Descripcin Entero 1 byte Entero corto Entero Entero largo Pres. simple Pres. doble 1 carcter true/false

Nombres de Variables
Debe ser un identificador legal de Java comprendido en una serie de caracteres Unicode. Unicode es un sistema de codificacin que soporta texto escrito en distintos lenguajes humanos.Unicode perminte la codificacin de 34.168 caracteres. No puede ser el mismo que una palabra clave o el nombre de un valor booleano (true or false) No deben tener el mismo nombre que otras variables cuyas declaraciones aparezcan en el mismo mbito.

Declaracin de Variables
Sintxis:
TipoDeDato identificador=valor inicial;

Ejemplos:
int contador=0; char letra; double PI=3.141592654;

Control de Flujo
Las sentencias de control de flujo determinan el orden en que se ejecutarn las otras sentencias dentro del programa. El lenguaje Java soporta varias sentencias de control de flujo, incluyendo:
Toma de decisiones Ciclos o bucles Excepciones Rompimiento de flujo

if (ejecucin condicional)
Sintxis:
if (expresin lgica) sentencias;
expresin lgica

sentencia o bloque

if - else (ejecucin condicional dicotmica)


Sintxis:
if (expresin lgica) sentencia1; else sentencia2;
true
expresin lgica

false

sentencia1 o bloque1

sentencia2 o bloque2

switch (ejecucin condicional mltiple)


Sintxis:
switch(expresin){ case constante1: sentencia1; case constante2: sentencia2; ...... default: sentencia por defecto; }

switch (ejecucin condicional mltiple)


Evaluacin de la Expresin

cte1

true true

lista de sentencias 1

false

break

true true

cte2

lista de sentencias 2

break

false
default

true

lista de sentencias por default

for (iteracin o bucle)


Sintxis:
for(exp.Inicializacin;exp.lgica;exp.iteracin) sentencia;
Evaluacin de la expresin de inicializacin Expresin Lgica

false

true
sentencia o bloque

Evaluacin de la expresin de iteracin

while (iteracin o bucle)


Sintxis:
while(expresin lgica) sentencia;
Expresin Lgica

false

true
sentencia o bloque

do-while (iteracin o bucle)


Sintxis:
do { sentencia; } while (expresin lgica);
sentencia o bloque

Expresin Lgica

false

true

break (bifurcacin incondicional)


Sintxis:
break;
Expresin Lgica

false

true
sentencia; break;

break (bifurcacin incondicional)


Sintxis:
continue;
Expresin Lgica

false

true
sentencia; continue;

Arreglos y Cadenas de Caracteres


Un arreglo es un tipo compuesto de variables del mismo tipo. Estas variables pueden ser a su vez de tipos simples (tipos primitivos) o compuestos (objetos). Los arreglos pueden ser de una o ms dimensiones, y cada dimensin se especifica con un par de corchetes.

Arreglos y Cadenas de Caracteres


Sintxis para la declacin de arreglos:
tipo identificador[]; tipo[] identificador; Ej: int numeros[];

El tamao del arreglo se debe especificar por medio del operador new:
identificador = new tipo[tamao]; Ej: numeros = new int[100];

El ndice de un arreglo inicia desde la posicin 0, y este debe ser declarado como un tipo de dato entero (int).

Arreglos y Cadenas de Caracteres


Declaracin de matrices:
float matriz[][]; matriz = new float[3][2];

En este caso el primer valor de los corchetes especifica que la matriz tiene 3 filas, y el segundo valor declara que la matriz tiene 2 columnas.
Columnas Filas
(0,0) (1,0) (2,0) (0,1) (1,1) (2,1)

Arreglos y Cadenas de Caracteres


En Java las cadenas de caracteres son manejadas por la clase String. Los literales tipo cadena son en realidad instancias de la clase String. Los objetos de tipo String pueden realizar operaciones tales como determinar su longitud, trabajar con cada uno de los caracteres, extraer subcadenas, etc.

Arreglos y Cadenas de Caracteres


Sintxis de declaracin de cadenas:
String identificador="valor inicial"; Ej: String cadena="Hoy es un da fro";

Para declarar cadenas tambin se puede hacer uso del constructor de clase:
String cadena; cadena = new String("Hoy es un da fro");

O simplemente declararla y luego inicializarla:


String cadena; cadena = "Hoy es un da fro";

Arreglos y Cadenas de Caracteres


Operaciones sobre cadenas:
length() : devuelve la longitud de la cadena charAt(indice): devuelve el carcter en el ndice equals(String): devuelve true si los String son iguales equalsIgnoreCase(String): compara ignorando maysculas y minsculas. startsWith(String): devuelve true si el objeto inicia con el String especificado. endsWith(String): devuelve true si el objeto termina con el String especificado.

Arreglos y Cadenas de Caracteres


Continuacin ...
indexOf(char): determina la posicin de la primera ocurrencia de un carcter. substring(inicio, fin): devuelve un String de una cadena iniciando en la posicin de inicio y terminando una posicin antes del fin. valueOf(tipo primitivo): mtodo esttico que devuelve la cadena correspondiente al tipo que se le pase como argumento.

Ejercicios ....
Variables Control de flujo Arreglos Cadenas de caracteres

JAVA EN EL LADO DEL CLIENTE

Desarrollo de Applets

Los Applets

Un applet es un programa que corre en un navegador que sea compatible con Java. Los applets tienen restricciones para brindar una mayor seguridad.

Restricciones de los Applets

Un applet no puede cargar libreras ni definir mtodos nativos. No puede leer ni escribir ficheros en el Host en el que se est ejecutando. No puede realizar conexiones en la Red, excepto con el Host del que fue cargado.

Continuacin ...

No puede arrancar ningn programa en el Host donde se est ejecuando. No puede leer ciertas propiedades del sistema. Las ventanas que proporcionan los applets tienen un aspecto diferente a las de cualquier aplicacin.

Capacidades de los Applets

Los Applets pueden hacer conexiones al host del que fueron cargados. Los Applets que se ejecutan dentro de un navegador Web pueden hacer que se muestren pginas HTML de una forma muy sencilla.

Continuacin ...
Los Applets pueden invocar mtodos pblicos de otros Applets que se encuentren en la misma pgina. Los Applets que se han cargado desde un directorio local (desde un directorio en el CLASSPATH del usuario) no tienen ninguna restriccin como los applets cargados a travs de la Red. Aunque la mayora de los applets paran su ejecucin cuando el usuario abandona la pgina, no tienen porque hacerlo.

Ciclo de carga de un Applet


El archivo HTML es cargado. El tag <applet> es detectado. EL archivo .class es bajado desde el servidor. Las clases referenciadas por el applet son detectadas y bajadas al cliente. Son llamados los mtodos init() y start(). El applet es mostrado en el browser.

Ciclo de Vida de un Applet


init(): Llamado la primera vez que el applet es cargado. start(): Llamado despus del mtodo init(), y cada vez que el browser regresa a la pgina en la cual el applet est contenido. stop(): Llamado cada vez que el browser deja la pgina Web, donde el applet est contenido. destroy(): Llamado justo antes de que el browser se cierre completamente.

La Clase Applet
App le t
(fr om a pp l e t )

s etStu b (s tub : Ap pletStu b ) : void is Active () : bo ole an g etD o cu m e ntBa s e () : U R L g etC o de Ba s e () : U R L g etPara m eter(n a m e : String ) : String g etAp ple tC on te xt() : Ap p le tC on text re s ize (w id th : in t, h eigh t : int) : vo id re s ize (d : D im en s io n) : void s ho w Sta tu s (m s g : Strin g) : vo id g etIm ag e (url : U R L) : Im a ge g etIm ag e (url : U R L, n am e : String ) : Im ag e g etAu dio C lip (url : U R L) : Aud io C lip g etAu dio C lip (url : U R L, na m e : String ) : Au dioC lip g etAp ple tInfo() : Strin g g etLo ca le () : L o cale g etPara m eterIn fo () : String [][] p la y(u rl : U R L ) : vo id p la y(u rl : U R L , n am e : Strin g) : void init() : vo id s ta rt() : void s to p() : void d es tro y() : void

Entrada de Datos desde el Applet


Para introducir datos (valores, cadenas de texto) desde el applet se utilizan campos de texto (TextField). Todos los datos digitados son capturados como cadenas de texto. Es necesario convertir estas cadenas a su correspondiente valor cuando se trata de nmeros (flotantes, enteros, etc.).

Las Envolturas (Wrappers)


Son clases con mtodos que permiten hacer conversiones entre tipos de datos. Los tipos de datos primitivos no forman parte de ninguna jerarqua de clases y se pasan por valor a los mtodos. Java proporciona clases para envolver cada uno de los tipos primitivos transformandolos en objetos referenciables.

Jerarqua de Clases Number


Nu m b er
(fro m l a n g )

Long
( fr om la n g )

$ s e ria lVe rs io n U ID : lo n g = - 8 7 4 2 4 4 8 8 2 4 6 5 2 0 7 8 9 6 5 L in tVa lu e () : in t lo n g Va lu e () : lo n g flo a tVa lu e () : flo a t d o u b le Va lu e () : d o u b le b yte Va lu e () : b yte s h o rtVa lu e () : s h o rt

D o u b le
( fro m l a n g )

Fl o a t
( fro m l a n g )

In te g e r
( fr om la n g )

Byte
(fro m l a n g ) (fro m l a n g )

Sh o rt $ MIN _VAL U E : s h o rt = - 32 7 6 8 $ MAX_ VAL U E : s h o rt = 3 2 7 6 7 va lu e : s h o rt

$ MIN _ VAL U E : b yte = - 1 2 8 $ MAX_ VAL U E : b yte = 1 2 7 va lu e : b yte

Utilizacin de Envolturas

Crear la referencia a la envoltura:


Float NumeroFlotante;

Crear el objeto:
NumeroFlotante = new Float(3.15); NumeroFlotante = new Float("3.15");

Utilizar los mtodos:


double valor = NumeroFlotante.doubleValue(); String strvalor = NumeroFlotante.toString();

Ejercicios ...

Crear una GUI. Utilizar las Envolturas.

El Paquete AWT

Abstract Window Toolkit

El paquete AWT
El AWT es un conjunto completo de elementos de interfaz de usuario que incluye ventanas, mens, botones, casillas de verificacin, barras de desplazamiento, etc. Incluye el manejo de contenedores. Incluye el sistema de control de eventos. Mecanismos para distribucin de componentes en la pantalla.

Jerarqua Parcial del AWT


C om po ne nt
(fro m a wt)

C an va s
(fro m a wt)

C on ta in er
( fro m awt )

TextC om po ne nt
( fro m awt )

Bu tton
(fro m a wt)

Pa ne l
( fro m a wt)

Win do w
( fro m awt )

TextFie ld
(fro m a wt)

App le t
(fro m a p p l e t)

Fram e
(fro m a wt)

D ia lo g
( fro m awt )

Componentes (La clase Component)


Un componente es un elemento grfico que sirve de interfaz al usuario de una aplicacin. A los componentes tambin se le llaman controles. La clase Component es una clase abstracta que define los elementos comunes de cada componente, como el color, tamao, mtodos como mostrar, manejar eventos, etc.

Algunos Mtodos de Component


boolean action(Event,Object) Rectangle bounds() synchronized void disable() void enable(boolean condicion) synchronized void enable() Color getBackground() Font getFont() Color getForeground() Container getParent() boolean handleEvent(Event evt) synchronized void hide() boolean keyDown(Event evt, int key) boolean keyUp(Event evt, int key) boolean mouseDown(Event evt, int x, int y) boolean mouseDrag(Event evt, int x, int y) boolean mouseEnter(Event evt, int x, int y)

Continuacin ...
boolean mouseExit(Event evt, int x, int y) boolean mouseMove(Event evt, int x, int y) boolean mouseUp(Event evt, int x, int y) void move(int x, int y) void nextFocus() void requestFocus() void setBackground(Color) void setForeground(Color) void show()

Contenedores (La clase Container)

Un contenedor es un componente que puede incluir a otros componentes (incluso a otros contenedores). Todos los contenedores del paquete awt derivan de la clase abstracta Container. Los principales contenedores son: Panel, ScrollPane, Window.

Algunos Mtodos de la Clase Container


Component add(String info, Component comp) Component add(Component comp, int pos) Component add(Component comp) int countComponents() void remove(Component comp) void setLayout(LayoutManager)

Cmo aadir componentes a un contenedor?

Mtodo add(...):
add(Componente);

Cmo distribuir los componentes en el contenedor?

Los Administradores de Diseo:


Un administrador de diseo es un objeto que controla el tamao y posicin de los componentes de un contenedor. Por defecto, todos los objetos Container tiene un objeto LayoutManager que controla su distribucin. Para los objetos de la clase Panel, el controlador de disposicin por defecto es un objeto de la clase FlowLayout. Para los objetos de la clase Window, el controlador de disposicin por defecto es un objeto de la clase BorderLayout.

Ejemplos de los Administradores de Diseo

Tipos de Administradores de Diseo


FlowLayout BorderLayout CardLayout GridLayout GridBagLayout Administradores Definidos por el Programador Posicionamiento Absoluto

FlowLayout

Coloca los componentes en fila mientras quepan en el contenedor, en este ltimo caso los coloca en la siguiente fila. El orden en que se ubican es segn el orden en que se agreguen al contenedor. setLayout(new FlowLayout());

BorderLayout

Coloca y ajusta el tamao de los componentes de manera que llenen completamente el contenedor. BorderLayout tiene cinco reas: North, South, East, West, y Center. setLayout(new BorderLayout()); Para adicionar los componentes:
add("North",botonOk);

CardLayout
CardLayout ayuda a manejar dos o ms componentes (normalmente ejemplares de la clase Panel) que comparten el mismo espacio. Cada componente tiene un CardLayout que lo maneja como si jugaran a cartas o las colocaran en una pila, donde slo es visible la carta superior. Se puede elegir la carta que se est mostrando.

Continuacin ...

setLayout(new CardLayout()); Para adicionar el componente:


add("nombre", componente);

Para moverse entre los componentes:


public void first(Container parent) public void next(Container parent) public void previous(Container parent) public void last(Container parent) public void show(Container parent, String name)

GridLayout

Coloca los componentes en filas y columnas segn el mtodo constructor elegido y los parmetros especificados. Constructores:
public GridLayout(int rows, int columns) public GridLayout(int rows, int columns, int horizontalGap, int verticalGap) setLayout(new GridLayout(2,3));

GridBagLayout
Es el ms flexible de los administradores de diseo. En este administrador los componentes no estn restringidos a celdas e incluso pueden ocupar ms de una celda. Las caractersticas y restricciones para cada componente que se agregar al contenedor con este layout se especifican por medio de un objeto GridBagConstrains

Posicionamiento Absoluto

Los componentes se pueden ubicar de la forma que lo determine el programador, sin necesidad de utilizar un administrador de diseo

Continuacin ...

Se pone el administrador en null:


setLayout(null);

Se adicionan los componentes:


add(botonOK);

Se ubican y se dimensionan:
botonOk.reshape(x,y,ancho,alto);

Los Componentes del AWT


Clases:
Button Checkbox Choice Label List Scrollbar Canvas TextField Panel TextArea

Button: Botones de Accin

Constructores:
Button() Button(String)

Mtodos:
String getLabel() void setLabel(String)

Label: Etiquetas de Texto

Constructores:
Label() Label(String) Label(String, int)

Mtodos:
getText() setText(String) getAlignment() setAlignment(int)

Label.RIGHT, Label.LEFT, Label.CENTER

Checkbox: Casillas de Verificacin y Botones de Radio

Constructores:
Checkbox() Checkbox(String) Checkbox(String,CheckboxGroup,boolean)

Mtodos:
String getLabel() void setLabel(String) boolean getState() void setState(boolean)

TextField: Campos de Texto

Constructores:
TextField(int) TextField(String,int)

Mtodos:
void setEchoCharacter(char) String getText() void setText(String) int getColumns() void Select(int,int) void SelectAll() void setEditable(boolean)

Choice: Combos de Seleccin

Constructores:
Choice()

Mtodos:
void addItem(String) int countItems() String getItem(int) int getSelectedIndex() String getSelectedItem() void select(String) void select(int)

List: Listas de Seleccin

Constructores:
List() List(int filas, boolean multipleseleccin)

Mtodos:
addItem(String, int pos) addItem(String) void clear() int countItems() String getItem(int pos) void delItem(int pos) int getSelectedIndex()

Continuacin ...

Mtodos:
int[] getSelectedIndexes() String getSelectedItem() String[] getSelectedItems() void select(int pos)

Panel: Objeto Contenedor

Constructor:
Panel()

Crear el Panel:
Panel panel1; panel1 = new Panel();

Adicionar componentes:
panel1.add(Component);

TextArea: Areas de Texto

Constructores:
TextArea() TextArea(int filas, int columnas) Textarea(String, int filas, int columnas) TextArea(String)

Mtodos:
void appendText(String) int getColumns() int getRows() void replaceText(string, int inicio, int fin)

Ejercicios ...

Manejo de Componentes. Administradores de Diseo.

MANIPULACION DE EVENTOS

El Ratn y el Teclado

Programacin con Eventos


Interfaces Grficas de Usuario (GUI) como generadoras de eventos. Los objetos esperan a que ocurran eventos para "actuar" de manera especfica. El flujo de control del programa ya no es secuencial, sino ms bien interacciones entre agentes externos a la palicacin con los objetos de software.

Modelos de Manipulacin de Eventos

El modelo por herencia. El modelo por delegacin.

El Modelo por Herencia

Aprovecha la jerarqua de clases para tener clases especializadas en manejar eventos. Mientras que el mtodo de la clase que maneja los eventos, no indique que se procese el evento, este subir por el rbol de objetos, hasta que algn objeto lo detecte y lo procese.

Continuacin ...
Versiones anteriores a java 1.1 utilizan este modelo para manejar los eventos. Slo subclases de Component manejan eventos sobreescribiendo el mtodo action(), para botones y los otros componentes, y handleEvent() para las barras de desplazamiento. El retorno de "true" termina de procesar el evento, mientras que "false" sigue propagando el evento.

Continuacin ...

En este modelo los eventos son entregados a los componentes, sin importar que puedan ser manejados o no. Por este motivo NO es el modelo ms adecuado para manejar eventos.

Continuacin ...
Area de Texto

Panel

Botn

Continuacin ...

El Modelo por Delegacin


A partir de la versin 1.1 de Java, se reemplaza el modelo de herencia. En el modelo por delegacin, objetos de cualquier tipo pueden registrarse como sensibles a eventos (Listeners) realizados sobre otros objetos fuente. Las propiedades del evento (Event), son propagadas del objeto fuente al Listener mediante una llamada a un mtodo del Listener.

Continuacin ...

Es el objeto fuente quien recibe directamente el evento de un agente externo y verifica si "es de inters" de uno o ms Listeners. Se crea un objeto evento y llama al mtodo apropiado de cada Listener "interesado" para pasarle el evento.

Continuacin ...

Algunos Tipos de Listeners


Tipos
WindowListener MouseListener MouseMotionListener ComponentListener FocusListener ListSelectionListener ActionListener

Descripcin
Eventos con las ventanas (cerrar una ventana) Eventos al presionar el mouse sobre componentes Movimiento del Mouse sobre componentes Ocultamiento o visibilidad de los componentes El componente obtiene el foco Seleccin de items de tablas o listas Clicks sobre botones, Enter sobre campos, etc.

Ejemplo de ActionListener
import java.awt.*; import java.applet.*; import java.awt.event.*; public class Beeper extends Applet implements ActionListener { Button button; TextField campo; public void init() { button = new Button("Click Me"); campo = new TextField(50); add(button); add(campo); campo.setEditable(false); button.addActionListener(this); } public void actionPerformed(ActionEvent e) { if (e.getSource() == button) campo.setText("Se Presion el Botn"); } }

Ejemplo de MouseListener
public class MouseEventDemo ... implements MouseListener { ...//where initialization occurs: //Register for mouse events on blankArea and applet (panel). blankArea.addMouseListener(this); addMouseListener(this); ... public void mousePressed(MouseEvent e) { saySomething("Mouse pressed; # of clicks: " + e.getClickCount(), e); } public void mouseReleased(MouseEvent e) { saySomething("Mouse released; # of clicks: " + e.getClickCount(), e); } ...

Ejercicios ...

Eventos por Herencia. Eventos por Delegacin.

EL LENGUAJE DE PROGRAMACION JAVA PARTE II

Clases, Objetos, Mtodos,Interfaces, ...

Clases en Java

Las clases permiten definir la estructura y comportamiento que van a tener los objetos. Declaracin:
Modificador class NombreClase extends NombreSuperClase implemets NombreInterface { Variables; mtodos; }

Lo subrayado es opcional.

Modificadores
public: La clase se puede accesar por fuera del paquete en que se encuentra. final: La clase no puede ser una superclase. abstract: La clase solo tiene la declaracin de los mtodos pero no estn implementados aun. No se permite crear instancias de este tipo de clases.

Variables de Instancia

Las variables de instancia son aquellas que se encuentran declaradas dentro de la clase. Estas variables pueden ser declaradas a partir de los tipos primitivos o a partir de otras clases.

Mtodos

Los mtodos son las operaciones que denotan el comportamiento de los objetos del tipo de clase. Declaracin:
EspecificadorDeAcceso Modificador TipoRetorno NombreMtodo (parmetros) throws ListaExcepciones

Lo subrayado es opcional.

Especificadores de Acceso
Sirven para restringir el acceso a un mtodo.
public: El mtodo puede ser accesado por todas las clases sin importar su jerarqua o su paquete. protected: El mtodo solo puede ser accesado por las clases del paquete actual. Pero no por otras clases de otro paquete. friendly: Mtodos accesibles a la clase actual y a clases que se hereden de esta clase. private: Solo pueden ser vistas dentro de la misma clase. private protected: se puede accesar por la clase y cualquier subclase pero no al resto del paquete ni a ninguna clase por fuera del paquete.

Modificadores de Acceso
Permiten establecer las propiedades de un mtodo, tales como donde ser visible y como las subclases de la clase interactuarn con este.
static: Los mtodos y variables se comparten para las diferentes instancias de la clase. abstract: mtodos declarados pero no implementados en la clase. final: Cuando se usa permite que los mtodos de una clase no sean redefinidas en las subclases. native: Mtodos que se quieren usar pero que no estn escritos en java. Synchronized: Mtodo sincronizado para el manejo de hilos.

Invocacin de Mtodos

Para invocar un mtodo de un objeto se necesita especificar:


A qu objeto pertenece el mtodo. Qu mtodo es el que se invocara. Los parmetros requeridos por el mtodo.

Para la invocacin de mtodos se utiliza el operador punto (.) Objeto.mtodo(parmetros);

Clases Abstractas en Java


Una clase abstracta es aquella clase que define uno o ms mtodos abstractos. Las clases abstractas no se pueden instanciar. Un mtodo abstracto se declara pero no se implementa. Este mtodo se debe implementar en las clases derivadas. Para su definicin se utiliza la palabra reservada abstract.

El Constructor de Clase
Es un mtodo de clase que tiene el mismo nombre de la clase. Este mtodo es utilizado para inicializar las variables de instancia de la clase. El mtodo constructor es invocado automticamente al crear instancias de la clase con el operador new. El constructor no puede retornar valores.

Creacin de Objetos

Para crear un objeto de una clase y tener una variable de referencia se utiliza el operador new. Sintaxis:
NombreClase objeto=new NombreClase();

Ejemplo:
Circulo objetocirculo = new Circulo();

Herencia de Clases

Para utilizar herencia se necesita definir una clase base o superclase y una clase derivada que se extienda de la superclase. Esquema general:
class superclase { ... } class derivada extends superclase { ... }

Continuacin ...

La real potencia de la herencia no es solo el hecho de adquisicin de propiedades y mtodos de la superclase, sino la facilidad de especializar la subclase con mtodos y propiedades adicionales. En el caso de los mtodos se permitir redefinir los heredados (polimorfismo).

Sobreescritura de Mtodos
Los mtodos pueden sobreescribirse en cada una de las subclases de una superclase, de manera que cuando sea invocado, se ejecute de acuerdo a la subclase del objeto en la invocacin. En algunos casos es necesario hacer referencia a las mtodos de la superclase, en estos casos es necesario utilizar (this y super).

Sobrecarga de Mtodos

Los mtodos dentro de una misma clase pueden llamarse con el mismo nombre. La diferencia debe encontrarse en los parmetros. Esta diferenciacin puede estar en los tipos de datos, la cantidad o el orden de los parmetros.

Interfaces

Una Interface es una clase que define un conjunto de mtodos, pero no los implementa. Una clase que implementa la interface cumple con implementar todos los mtodos de la interface para agregar algn comportamiento.

Ejercicios ...

Declaracin de Clases. Herencia de Clases. Polimorfismo. Clases Abstractas.

Introduccin a las Bases de Datos Relacionales


Conceptos Bsicos

Bases de Datos
Una base de datos es un conjunto de datos organizados de tal manera que facilite la extraccin de informacin. El DBMS es el conjunto de herramientas de software que administra el acceso a los datos, permitiendo su almacenamiento, consulta y actualizacin.

Plataforma Cliente Servidor


Cliente/servidor implica distribucin de aplicaciones y/o datos en una red de computadoras. Componentes:
Cliente (presentacin y GUI) Servidor (DBMS,WEB,GroupWare) Middleware (software que corre tanto en el cliente como en el servidor. Protocolos de transporte, Sistema operativo de red, Servicios)

Componentes Cliente/Servidor
Cliente
Servicios ODBC, JDBC,HTTP Transporte TCP/IP OS

DBMS

Middleware

Modelo Relacional
Es un modelo de datos basado en dos teoras matemticas: La teora de relaciones y la Lgica de predicados de primer orden. Presentado por Codd en 1970. Este modelo presenta una estructura y reglas de integridad.

Estructura del Modelo ER


Los datos son agrupados como relaciones de datos y se representan en forma de tablas, donde cada fila corresponde a una tupla y cada columna representa un dominio. Dominio: conjunto de valores que puede tomar el dato. Cada dato es atmico.

Operaciones Relacionales
Restriccin o Seleccin. Proyeccin. Producto cartesiano. Unin. Diferencia. Interseccin. Conjuncin o Join Relacional. Asignacin, Insercin, Eliminacin y Actualizacin.

Diseo de Bases de Datos


Dos etapas en el diseo:
Diseo lgico. Diseo fsico.

El diseo lgico es independiente de la tecnologa a utilizar El diseo fsico es la implementacion del diseo lgico en una tecnologa de bases de datos particular.

Modelamiento E/R
El modelamiento de datos es la principal tcnica para el diseo lgico de datos. Compuesto por:
Entidades. Datos de las entidades. Reglas del negocio (interrelaciones). Cardinalidad de las interrelaciones.

Diagrama E/R

Persona Depto #Cdula *Nombre *Direccin oTelfono


Pertenece Conformado

#ID *Nombre

Controlado por

Controla

Integridad del Modelo


La integridad referencial permite definir relaciones entre tablas a travs de los valores de los datos (columnas) de estas tablas. Integridad de entidad. Integridad referencial. Integridad de columna. Integridad de usuario.

SQL: Structured Query Languaje


Es un lenguaje interactivo que permite realizar consultas y actualizacin a bases de datos. Este leguaje puede ser embebido en lenguajes como C,C++, COBOL o JAVA. Lenguaje de Definicin de Datos (DDL) Lenguaje de Manipulacin de Datos (DML) Lenguaje de Control de Datos (DCL)

SQL: DDL
Sentencias:
Create Drop Alter

Create:
create table NombreTabla (NombreColumna tipo modificadores, ...)

SQL: DML
Sentencias:
Select Insert Update Delete

SQL: DML
Select:
select NombreColumna, ... from NombreTabla where Condicin

Insert:
insert into NombreTabla (NombreColumna, ...) values (valor, ...)

SQL: DML
Update:
update NombreTabla set NombreColumna=valor ... where NombreColumna = valor

Delete:
delete from NombreTabla where NombreColumna = valor

SQL: DCL
Sentencias:
Grant Revoke Commit RollBack

El ResultSet
Son las filas que satisfacen el resultado de una consulta (query). El numero de filas retornadas en un result set puede ser igual a cero, una o muchas. El acceso a las filas de datos se hace una por una, y de esto se encargan los cursores. Muchos DBMS crean cursores automticamente cuando el conjunto de resultados es generado.

Transaccin
Una transaccin es un conjunto de una o ms sentencias SQL, que en conjunto hacen una unidad lgica de trabajo. Una transaccin termina cuando se hace un commit o un rollback, dependiendo de si se los SQL se efectuaron con o sin xito.

Procedimiento Almacenado
Un procedimiento almacenado es un conjunto de sentencias SQL que pueden ser llamadas bajo un nombre. EL DBMS compila el procedimiento antes de almacenarlo, y no es recompilado en su ejecucin, mejorando as el desempeo de su ejecucin.

Metadatos
Usualmente guardamos datos en la base de datos que hacen referencia a los hechos de la vida del negocio. Para almacenar esos datos es necesario que la base de datos tenga en su interior las descripciones de los datos donde se almacenaran estos hechos. A estos datos se le llaman metadatos.

Ejercicio ...
Modelamiento E/R Modelo Relacional de Datos

Acceso a Bases de Datos Con Java


JDBC: Java DataBase Conectivity

Qu es JDBC?
JDBC es la API estndar de acceso a bases de datos usando el lenguaje de programacin Java. Esta API se incluye con el kit de desarrollo de Java versin 1.1 y posteriores.

Java no Usa ODBC Directamente


Sun Microsystems crea una nueva API debido a que ODBC utiliza funciones de bajo nivel que no son compatibles 100% con Java, como lo son los punteros. Sun se une a Intersolv para desarrollar un puente entre JDBC y ODBC, ya que el acceso a bases de datos con ODBC es un modelo estndar.

Por qu Utilizar JDBC y no CGI?


CGI: es un mtodo lento y adems propicia errores en las aplicaciones, ya que requiere el uso de al menos dos lenguajes de programacin (Java y C C++). C y C++ no son lenguajes 100% portables.

Tipos de Controladores JDBC


Existen cuatro niveles de controladores JDBC.
Nivel 1: Puente JDBC-ODBC. Nivel 2: Parcialmente hecho en Java. Nivel 3: Protocolo de Red. 100% Java. Nivel 4: Protocolo Nativo de la BD. 100% Java.

Nivel 1
Desarrollado por JavaSoft. Usa el driver ODBC especfico para la Base de Datos. Requiere que el ODBC se encuentre disponible en la mquina cliente donde se ejecuta la aplicacin JAVA.

Driver de Nivel 1
Aplicacin JDBC Driver Manager Puente JDBC-ODBC ODBC Driver Manager ODBC (DB2) ODBC (Oracle) Servidor Cliente

DBMS (DB2)

DBMS (Oracle)

Nivel 2
Utiliza JAVA para hacer llamadas al API de acceso (protocolo) del DBMS que debe estar disponible en el cliente. El cliente provee la conectividad y acceso a la base de datos. El driver es una implementacin parcialmente hecho en JAVA.

Driver de Nivel 2
Aplicacin JDBC Driver Manager Puente Puente JDBC-ProtocoloDBMS JDBC-ProtocoloDBMS JDBC-CAE JDBC-SQL*Net CAE (DB2) SQL*Net (Oracle) Servidor

Cliente

DBMS (DB2)

DBMS (Oracle)

Nivel 3
Utiliza los protocolos de red que vienen con el JDK para conectarse a un servidor. En el servidor se traducen los requerimientos a transacciones del DBMS. No requiere cdigo ejecutable en el lado del cliente (del API de acceso al DBMS). El protocolo de red que se utiliza es genrico, por lo tanto el mismo driver puede acceder a diferentes DBMS.

Driver de Nivel 3
Aplicacin JDBC Driver Manager Driver JDBC Protocolo genrico de red Cliente

Middleware

Middleware Servidor

DBMS (DB2)

DBMS (Oracle)

Nivel 4
Driver completamente escrito en JAVA. Comunica directamente a la base de datos con el protocolo de red del DBMS. Esta comunicacin directa se implementa a travs de conexiones de red (sockets).

Driver de Nivel 4
Aplicacin JDBC Driver Manager Cliente

Driver JDBC (DB2)

Driver JDBC (Oracle) Servidor

DBMS (DB2)

DBMS (Oracle)

Dnde obtener los Drivers?


Http://java.sun.com/products/jdbc

Qu Necesito para utilizar JDBC?


JDK 1.1 o superior Controlador JDBC El DBMS

Estructura General de una Aplicacin JDBC


Statement Cargar el Driver JDBC Conectarse a la BD Crear el Objeto Statement Ejecutar la sentencia SQL Procesar los Resultados

Prepared Statement Callable Statement

La Fuente de Datos
Tener Acceso a un DBMS:
ACCESS ORACLE MYSQL MSQL POSTGRESS INFORMIX

Puente JDBC:ODBC
Crear la fuente de datos con el administrador de ODBC instalado en el cliente.

El paquete java.sql
Conjunto de clases e interfaces escritas en JAVA. El nivel del driver consiste en implementaciones que trabajan con el manejador de la base de datos. El nivel de la aplicacin consiste en la clase DriverManager que maneja los drivers siendo utilizados por una plicacin o applet para acceder una base de datos.

La API JDBC de Java


Clases/Interfaces del paquete java.sql
Driver DriverManager DriverPropertyInfo Connection DatabaseMetadata Statement PreparedStatement CallableStatement ResultSet ResultSetMetadata

Jerarqua de Clases del Paquete java.sql


Object DriverManager DriverInfo DriverPropertyInfo Types Date Date Time Throwable Exception Timestamp SQLException SQLWarning DataTruncation

Interfaces
Connection DatabaseMetaData Driver ResultSet ResultSetMetaData Statement PreparedStatement CallableStatement

La Clase SQLException
Esta clase provee un mecanismo para el control de errores cuando se accesa una base de datos. Un objeto del tipo SQLException contiene:
Una descripcin del error. Una cadena (SQLState) identificando el error. Un cdigo de error.

Manejo de las Excepciones


try { // bloque con sentencias de JDBC } catch(SQLException ex){
System.out.println(Error SQL: +ex.getMessage()); System.out.println(Estado: +ex.getSQLState());

Tipos JDBC a Tipos JAVA


CHAR=>String VARCHAR=>String LONGVARCHAR=>String NUMERIC=>java.math.BigDecimal DECIMAL=>java.math.BigDecimal BIT=>boolean TINYINT=>byte

Continuacin ...
SMALLINT=>short INTEGER=>int BIGINT=>long REAL=>float FLOAT=>double BINARY=>byte[] VARBINARY=>byte[]

Continuacin ...
LONGVARBINARY=>byte[] DATE=>java.sql.Date TIME=>java.sql.Time TIMESTAMP=>java.sql.Timestamp

El Programa en Java Para el Acceso a la BD


Instrucciones SQL Estticas

Definicin de las Referencias


// Aqu se definen las referencias a la BD String NombreDriver ="sun.jdbc.odbc.JdbcOdbcDriver"; String url ="jdbc:odbc:JDBC_PRUEBA"; String usuario = "Administrador"; String passwd = 872401"; Driver driver; Properties p; Connection conexion; Statement instruccionSQL; String sql; ResultSet resultadoSQL;

Cargando el Driver
// Aqu se carga el puente JDBC:ODBC driver = (Driver)Class.forName(NombreDriver).newInstance();

La Conexin con la BD
// Propiedades requeridas para el usuario en la BD p = new Properties(); p.put("user",usuario); p.put("password",passwd); // Aqui se establece la conexin fsica con la BD conexion = driver.connect(url,p);

Creando la Sentencia SQL


// Se crea el objeto para manejar las instrucciones SQL instruccionSQL = conexion.createStatement(); // Cargamos el sql sql = new String("select * from empresas");

Ejecutando el SQL
// Se ejecuta la instruccin SQL resultadoSQL = instruccionSQL.executeQuery(sql);

Procesando los Resultados


// Se arma la cadena de resultados while (resultadoSQL.next()){ cadena += resultadoSQL.getString(1)+ resultadoSQL.getString(2)+ resultadoSQL.getString(3)+ "\n"; } areadetexto.setText(cadena);

Se Liberan los Recursos


resultadoSQL.close(); instruccionSQL.close(); conexin.close();

Ejercicios ...
JDBC Instrucciones SQL Estticas

El Programa en Java Para el Acceso a la BD


Instrucciones SQL Dinmicas

Qu es un SQL Dinmico?
El SQL dinmico es una forma de preparar instrucciones SQL haciendo uso de parmetros dentro del SQL. Esto permite que el usuario sea el que decida que datos extraer de la Base de Datos.

Cmo se crea un SQL Dinmico?


Utilizar la interfaz PreparedStatement Crear el SQL poniendo un smbolo de (?) en el parmetro. select nombre from empleados where apellido = ?

Mtodos de la Interfaz PreparedStatement


clearParameters execute executeQuery executeUpdate setAsciiStream setBinaryStream setBoolean setByte setDate setShort setString setTime setFloat setInt setLong setNull setNumeric setDouble

clearParameters
Borra los valores de todos los parmetros que est usando actualmente la instruccin dinmica SQL. Preparado.clearParameters();

execute
Ejecuta una instruccin SQL ya sea de actualizacin o de consulta. ResultSet resultados = preparado.execute();

executeQuery
Se usa para ejecutar SQL que retornan un conjunto de resultados. ResultSet resultados = preparado.executeQuery();

setInt, setString, ...


Asigna los parmetros que sern enviados a la base de datos en el SQL. setInt(1,100); Este ejemplo pone en el primer parmetro en valor de 100.

Definicin de las Referencias


// Aqu se definen las referencias a la BD String NombreDriver ="sun.jdbc.odbc.JdbcOdbcDriver"; String url ="jdbc:odbc:JDBC_PRUEBA"; String usuario = "", passwd=""; Driver driver; Properties p; Connection conexion; String sql, cadena=""; TextArea areadetexto; TextField campo; PreparedStatement selectpreparado; ResultSet resultadoSQL;

Cargando el Driver y la Conexin


// Aqu se carga la clase que implementa el puente JDBC:ODBC driver = (Driver)Class.forName(NombreDriver).newInstance(); // Establece las propiedades para el usuario en la BD p = new Properties(); p.put("user",usuario); p.put("password",passwd); // Aqu se establece la conexin fsica con la BD conexion = driver.connect(url,p);

Se Crea el SQL Preparado


// Cargamos el sql y ponemos un ? para cambiarlo por el valor digitado sql = new String("select * from personas where edad > ?"); selectpreparado = conexion.prepareCall(sql);

Ejecutando el SQL
// Borra los valores de los parmetros del select selectpreparado.clearParameters(); // Especifica la edad en el select selectpreparado.setInt(1,Integer.parseInt(campo.getText())); // Ejecuta la instruccin y obtiene los resultados resultadoSQL = selectpreparado.executeQuery();

Procesando los Resultados


while (resultadoSQL.next()){ cadena += " [" + resultadoSQL.getString(3) + "] " + " [" + resultadoSQL.getString(2) + "] " + " [" + resultadoSQL.getString(4) + "] " + "\n"; }

Liberando los Recursos


resultadoSQL.close(); instruccionSQL.close(); conexin.close();

Ejercicios ...
JDBC Instrucciones SQL Dinmicas

You might also like