Cur So Java by Oracle
Cur So Java by Oracle
Presentacin Electrnica
Autores Jeff Gallus Glenn Stokol Revisores y Colaboradores Tcnicos Kenneth Cooper Christian Dugas Peter Driver Craig Hollister Chika Izumi Pete Laseau Glenn Maslen Monica Motley Gayathri Rajagopal Editor Michael Sebastian
Copyright 2004, Oracle. Todos los derechos reservados. Esta documentacin contiene informacin propiedad de Oracle Corporation; se suministra bajo los trminos de un contrato de licencia que contiene restricciones de uso y de revelacin y est tambin protegida por la legislacin de derechos de autor. Queda prohibida la ingeniera reversa del software. Si esta documentacin se entrega a una agencia del Ministerio de Defensa del Gobierno de EE.UU., se aplicar la siguiente advertencia de Restricted Rights: Restricted Rights Legend Use, duplication or disclosure by the Government is subject to restrictions for commercial computer software and shall be deemed to be Restricted Rights software under Federal law, as set forth in subparagraph (c) (1) (ii) of DFARS 252.227-7013, Rights in Technical Data and Computer Software (October 1988). Este material ni ninguna parte del mismo podr ser reproducido en cualquier forma o a travs de cualquier medio sin el expreso consentimiento por escrito de Oracle Corporation. La reproduccin es una violacin de la ley de derechos de autor y puede tener consecuencias penales o civiles. Si esta documentacin se entrega a una agencia del Gobierno de EE.UU. no perteneciente al Ministerio de Defensa, se aplicar la advertencia de Restricted Rights definida en FAR 52.227-14, Rights in Data-General, incluido Alternate III (junio de 1987). La informacin contenida en este documento est sujeta a cambio sin previo aviso. Si detecta cualquier problema en la documentacin, le agradeceremos lo comunique por escrito a Education Products, Oracle Corporation, 500 Oracle Parkway, Box SB-6, Redwood Shores, CA 94065. Oracle Corporation no garantiza que este documento est exento de errores. Todas las referencias a Oracle y a productos Oracle son marcas comerciales o marcas comerciales registradas de Oracle Corporation. Todos los dems nombres de compaas y productos mencionados se utilizan a los exclusivos fines de su identificacin y pueden ser marcas comerciales de sus respectivos propietarios.
Introduccin
Objetivos
Al finalizar este curso, debera estar capacitado para: Escribir aplicaciones autnomas con el lenguaje de programacin Java Desarrollar y desplegar una aplicacin Crear, generar y probar componentes de aplicacin mediante Oracle JDeveloper 10g
Objetivos
Al finalizar esta leccin, debera estar capacitado para: Identificar los elementos clave de Java Describir la JVM (Java Virtual Machine) Examinar cmo se utiliza Java para crear aplicaciones Identificar los componentes clave de J2SE Java Development Kit (conocido como JDK o SDK) Describir las opciones de despliegue de Java
Qu es Java?
Java: Es un lenguaje orientado a objetos y a plataformas. Fue diseado originalmente por Sun Microsystems para los productos electrnicos de consumo masivo. Contiene una biblioteca de clases. Utiliza una mquina virtual para la ejecucin de programas.
MODELOS DE CLASES
5 Copyright 2004, Oracle. Todos los derechos reservados.
Independencia de la Plataforma
El cdigo de origen Java se almacena como texto en un archivo .java. El archivo .java se compila en archivos .class. Un archivo .class contiene bytecodes (instrucciones) de Java. Los bytecodes se interpretan en tiempo de ejecucin.
El archivo .class de Java es el cdigo ejecutable.
Compila (javac) Movie.java
6
Sistema operativo
JVM Aplicacin
El verificador de JVM comprueba la existencia de bytecodes no vlidos. El verificador de JVM ejecuta los bytecodes.
JVM puede llamar a un compilador JIT (Just-In-Time).
El gestor de memoria libera la memoria utilizada por el objeto con referencia cancelada y la devuelve al SO.
JVM maneja la recopilacin de desechos.
10
Cargador de clase
Verificador de bytecode
11
12
13
14
Depurador (jdb) Intrprete de bytecode: La JVM (java) Generador de documentacin (javadoc) Utilidad jar (Archivo Java) Otros
Copyright 2004, Oracle. Todos los derechos reservados.
J2SE
15
XML
Cambios sincronizados
SCM
HTML
Despliegue
16
Paleta de Componentes
Editor de Cdigos
Inspector de Propiedades
Productos Oracle10g
18
Resumen
En esta leccin, ha aprendido lo siguiente: El cdigo Java se compila en bytecodes independientes de la plataforma. JVM interpreta los bytecodes. Las aplicaciones Java pueden ser autnomas o se pueden implementar a travs de un modelo de computacin de Internet.
19
Objetivos
Al finalizar esta leccin, debera estar capacitado para: Definir objetos y explicar cmo se utilizan Asociar objetos para que se puedan comunicar y puedan interactuar mediante mensajes Definir clases y explicar cmo se utilizan Describir los principios OO (orientados a objetos): Clases, objetos y mtodos Describir el valor de los componentes de software reutilizables Examinar el modelo OO que se utiliza en este curso
Qu es el Modelado?
Los modelos realizan las siguientes funciones:
Describen exactamente cules son las necesidades de negocio. Facilitan la discusin. Evitan errores.
El modelado y la implementacin se tratan por separado. Antes de que pueda comenzar la codificacin, el modelo debe ser correcto.
Un objeto:
Est moldeado en funcin de la clase. Es una instancia nica de una clase. Retiene la estructura y el comportamiento de una clase.
Operacin: Escribir
Contexto: Catlogo de productos Atributos/operaciones del mundo real que puede que desee modelar: Atributos: Modelo, fabricante, precio Operaciones: Cambiar precio Atributos/operaciones del mundo real que puede que no desee modelar: Atributos: Color de tinta Operaciones: Rellenar tinta, cambiar color, sealar, escribir
7 Copyright 2004, Oracle. Todos los derechos reservados.
Una PC puede tener un teclado, un mouse y una tarjeta de red, y todos pueden ser objetos.
Una PC puede tener una unidad de CD, que puede ser un objeto.
Diagrama de Donut
getName
setBirthdate
getAge
getAge() Mensaje
getAddress
setAddress
Cliente o remitente
Persona
9 Copyright 2004, Oracle. Todos los derechos reservados.
10
Objetos de Colaboracin
Los objetos de colaboracin funcionan juntos para terminar una tarea y constituyen la base de un sistema de aplicaciones. Todos los mtodos se definen dentro de una clase y no globalmente, como en los lenguajes tradicionales. Todos los objetos se crean a partir de clases y contienen todos los atributos y todos los mtodos de dichas clases. Los objetos se deben asociar entre ellos para poder colaborar en tareas comunes. Los objetos asociados se comunican mediante el envo de mensajes.
11 Copyright 2004, Oracle. Todos los derechos reservados.
12
Qu es una Clase?
Una clase es una plantilla para objetos. Una definicin de clase especifica las operaciones y los atributos para todas las instancias de esa clase. Las clases se utilizan para gestionar la complejidad.
Al crear el objeto mi pluma azul, no es necesario que especifique sus operaciones ni sus atributos. Simplemente debe explicar a qu clase pertenece.
13
Su pluma azul
14
15
Qu es la Encapsulacin?
La encapsulacin oculta las operaciones y la estructura internas de un objeto detrs de una interfaz. Un cajero automtico es un objeto que permite que los usuarios retiren efectivo.
El cajero oculta (encapsula) la operacin real de retirada de efectivo del usuario. La interfaz (la forma de operar el cajero) se proporciona mediante las funciones del teclado, la pantalla, el dispositivo que permite dispensar efectivo, etc. Ignorar la encapsulacin constituye un robo bancario.
16
Qu Es la Herencia?
Puede haber aspectos comunes entre clases distintas. Define las propiedades comunes de una superclase.
Cuenta de ahorros
Cuenta
Cuenta corriente
17
Cuenta
Pluma
Cuenta de ahorros
Lpiz
18
Qu es el Polimorfismo?
El trmino polimorfismo hace referencia a: Muchas formas para la misma operacin. La capacidad de solicitar una operacin con el mismo significado para objetos distintos. Sin embargo, cada objeto implementa la operacin de una forma nica. Los principios de herencia y sustitucin de objetos.
Carga de pasajeros
19 Copyright 2004, Oracle. Todos los derechos reservados.
20
21
22
Resumen
En esta leccin, ha aprendido lo siguiente: Un objeto es una abstraccin de un objeto del mundo real. Una clase es una plantilla o un plano para los objetos. Las clases forman rboles de herencia: Las operaciones que se definen en una clase las heredan todas las subclases. El polimorfismo libera al emisor de la llamada de la responsabilidad de conocer la clase del objeto del receptor.
23
24
Order
id: int orderDate: Date shipDate: Date shipMode: String orderTotal: double addItem() removeItem() setOrderDate() getOrderDate() setShipDate() :
OrderItem
lineNo: int quantity: int price: double getQuantity() setQuantity() setPrice() getPrice() getItemTotal() :
Product Company
contact: String discount: int getContact() setContact() :
Individual
licNumber: String setLicNumber() getLicNumber() :
25
Objetivos
Al finalizar esta leccin, debera estar capacitado para: Identificar los componentes clave del lenguaje Java Identificar las tres construcciones de nivel superior de un programa Java Identificar y describir paquetes Java Describir la sintaxis bsica del lenguaje e identificar las palabras clave de Java Identificar las construcciones bsicas de un programa Java Compilar y ejecutar una aplicacin Java Examinar la arquitectura de JavaBeans como ejemplo de prcticas de codificacin estndar Usar la variable CLASSPATH y comprender su importancia en tiempo de compilacin y ejecucin.
2 Copyright 2004, Oracle. Todos los derechos reservados.
J2SE
J2SE
Generador de documentacin
J2SE
El archivo debe tener el mismo nombre que la clase pblica o que la interfaz pblica.
Nombres de archivos
Customer.java, RentalItem.java
Nombres de mtodos
getCustomerName(), setRentalItemPrice()
Nombres de paquetes
oracle.xml.xsql, java.awt, java.io
Constantes:
MIN_WIDTH, MAX_NUMBER_OF_ITEMS
Declaracin
Variable de instancia
Mtodo de instancia
11
12
Ejemplos de un Mtodo
public float getAmountDue (String cust){ // method variables int numberOfDays; float due; float lateFee = 1.50F; String customerName; // method body numberOfDays = getOverDueDays(); due = numberOfDays * lateFee; customerName = getCustomerName(cust); return due; } Declaracin
Variables de mtodo
Sentencias de mtodo
Retorno
13
Declaracin de Variables
Puede declarar variables en cualquier lugar de un bloque de clase y fuera de cualquier mtodo. Debe declarar las variables antes de que se utilicen dentro de un mtodo. Normalmente, las variables se declaran al inicio de un bloque de clase. El mbito o la visibilidad de las variables se determina en el bloque de cdigo. Debe inicializar las variables de mtodo antes de utilizarlas. Las variables de instancia y de clase se inicializan automticamente.
Copyright 2004, Oracle. Todos los derechos reservados.
14
Variables temporales
15
16
17
18
getVar()
19
20
21
La Variable CLASSPATH
Se define en el sistema operativo. Dirige a JVM y a las aplicaciones Java a la ubicacin en la que pueden encontrar los archivos .class. Hace referencia a bibliotecas incorporadas o a bibliotecas definidas por el usuario. Permite que el intrprete busque rutas de acceso y carga las clases incorporadas antes que las clases definidas por el usuario. Se puede utilizar con los comandos javac y java.
22
CLASSPATH: Ejemplo
Ubicacin de los archivos .class en el paquete oe
Definicin de CLASSPATH
C:\>set CLASSPATH=D:labs\les03\classes\oe
23
Resumen
En esta leccin, ha aprendido lo siguiente: J2SE proporciona herramientas bsicas de Java. J2SE proporciona un juego enriquecido de mtodos y clases predefinidos. Los programas Java estn formados por clases, objetos y mtodos. Si se siguen los estndares de programacin, se facilita la lectura y la reutilizacin del cdigo.
24
25
Objetivos
Al finalizar esta leccin, debera estar capacitado para: Distinguir entre palabras reservadas y otros nombres en Java Describir las variables y los tipos de datos primitivos de Java Declarar e inicializar variables primitivas Utilizar operadores para manipular variables primitivas Describir los usos de los literales y de los operadores Java Identificar las categoras vlidas de operadores y la prioridad de operadores Utilizar los literales de objeto de cadena y el operador de concatenacin
2 Copyright 2004, Oracle. Todos los derechos reservados.
boolean byte char double float int long short void true false null
abstract final native private protected public static synchronized transient volatile strictfp
break case catch continue default do else finally for if return switch throw try while
class extends implements interface throws import package instanceof new super this
Tipos de Variables
Ocho tipos de datos primitivos:
Seis tipos numricos Un tipo de carcter Un tipo booleano (para valores verdaderos/falsos)
ab
Coma flotante
float double
Carcter
Verdadero Falso
char
boolean
Agregue al nmero una letra L o F en maysculas o en minsculas para especificar un nmero largo o flotante.
5 Copyright 2004, Oracle. Todos los derechos reservados.
Declaracin de Variables
Forma bsica de declaracin de variable:
type identifier [ = value];
public static void main(String[] args) { int itemsRented = 1; float itemCost; int i, j, k; double interestRate; }
Variables Locales
Las variables locales slo se definen dentro de un mtodo o de un bloque de cdigo. Se deben inicializar para que se pueda leer su contenido o hacer referencia a l.
class Rental { private int instVar; // instance variable public void addItem() { float itemCost = 3.50F; // local variable int numOfDays = 3; // local variable } }
Literales enteros
0 1 42 -23795 02 077 0123 0x0 0x2a 0X1FF 365L 077L 0x1000L 1.0 4.2 .47 1.22e19 4.61E-9 6.2f 6.21F
10
Literales booleanos
True false
Literales de carcter
'a'
'\n'
'\t'
'\077 '\u006F'
Literales de cadena
"Hello, world\n"
11
12
13
Clasificacin de Operadores
Hay cinco tipos de operadores: Asignacin Aritmticos Enteros a nivel de bits Relacionales Booleanos
14
La expresin de la derecha siempre se evala antes de la asignacin. Las asignaciones se pueden encadenar:
var1 = var2 = var3 = 50;
15
16
17
Examen de Conversiones
Java convierte automticamente un valor de un tipo numrico en un tipo ms largo.
byte
short char
int
long
18
19
mayor que mayor o igual que menor que menor o igual que igual que no igual que
int var1 = 7, var2 = 13; boolean res = true; res = (var1 == var2); res = (var2 > var1);
20
Si boolean_expr tiene el valor true, el resultado es expr1; en caso contrario, el resultado es expr2:
int val1 = 120, val2 = 0; int highest; highest = (val1 > val2) ? val1 : val2; System.out.println("Highest value is " + highest);
21
int var0 = 0, var1 = 1, var2 = 2; boolean res = true; highest = (val1 > val2)? val1 : val2; res = !res;
22
23
Prioridad de Operadores
Orden 1 2 3 4 5 6 7 8 9 10 11 12 13
24
Operadores ++ -- + - ~ ! (type) * / % + - + << >> >>> < > <= >= instanceof == != & ^ | && || ?: = op=
Comentarios Operadores unarios Multiplicacin, divisin, resto Suma, resta, adicin de cadena Desplazamiento (>>> es desplazar y rellenar con ceros) Comparacin de tipo, relacional Igualdad Operacin AND lgica/bit Operacin OR exclusiva lgica/bit Operacin OR de inclusin lgica/bit Operacin AND lgica Operacin OR lgica Operador condicional Operadores de asignacin
Asoc. R L L L L L L L L L L R R
Los operadores que tienen la misma prioridad se ejecutan de izquierda a derecha (consulte la nota del texto):
int var1 = 0; var1 = 12 - 6 + 3;
25
Concatenacin de Cadenas
El operador + crea cadenas y las concatena:
String String String name = name = "Jane "; lastName = "Hathaway"; fullName; name + lastName; // name is now //"Jane Hathaway" // OR name += lastName ; // same result fullName = name;
26
Resumen
En esta leccin, ha aprendido lo siguiente: Java tiene ocho tipos de datos primitivos. Se debe declarar una variable para poder utilizarla. Java proporciona un juego global de operadores. Si utiliza tipos de datos ms cortos que int, puede que necesite la conversin explcita. Los operadores + y += se pueden utilizar para crear cadenas y concatenarlas.
27
28
Objetivos
Al finalizar esta leccin, debera estar capacitado para: Utilizar construcciones de toma de decisiones Realizar operaciones de bucle Escribir sentencias switch
Secuencial
Iteracin
Seleccin
Transferencia
Las sentencias simples terminan con un punto y coma (;). Puede agrupar sentencias mediante llaves { }. Cada bloque se ejecuta como una nica sentencia dentro de la estructura de flujo de control.
Uso de la Sentencia if
if ( boolean_expr ) statement1; [else statement2]; if (i % 2 == 0) System.out.println("Even"); else System.out.println("Odd"); if (i % 2 == 0) { System.out.print(i); System.out.println(" is even"); }
5 Copyright 2004, Oracle. Todos los derechos reservados.
General:
Ejemplos:
Anidacin de Sentencias if
if (speed >= 25) if (speed > 65) System.out.println("Speed over 65"); else System.out.println("Speed >= 25 but <= 65"); else System.out.println("Speed under 25");
if (speed > 65) System.out.println("Speed over 65"); else if (speed >= 25) System.out.println("Speed greater to 65"); else System.out.println("Speed under 25");
6 Copyright 2004, Oracle. Todos los derechos reservados.
La sentencia switch resulta til al seleccionar una accin entre diversos valores enteros alternativos. Los valores de Integer_expr deben ser byte, int, char o short.
10
Ejemplo:
11
Ejemplo:
12
Ejemplo:
for (i = 0; i < 10; i++) System.out.println(i);
13
La inicializacin y la iteracin pueden estar formadas por una lista de expresiones separadas por comas:
for (int i = 0, j = 10; i < j; i++, j--) { System.out.println("i = " + i); System.out.println("j = " + j); }
14
15
La Sentencia break
Permite salir de un bucle o de una sentencia switch. Transfiere el control a la primera sentencia despus del cuerpo del bucle o a la sentencia switch. Puede simplificar el cdigo pero se debe utilizar con moderacin.
while (age <= 65) { balance = (balance+payment) * (1 + interest); if (balance >= 250000) break; age++; }
16 Copyright 2004, Oracle. Todos los derechos reservados.
Resumen
En esta leccin, ha aprendido lo siguiente: El medio principal para la toma de decisiones es la sentencia if, con la clusula else opcional. Java tambin ofrece la sentencia switch. Java proporciona tres sentencias de bucle: while, dowhile y for. Debe utilizar las sentencias break y continue con moderacin.
17
18
Objetivos
Al finalizar esta leccin, debera estar capacitado para: Crear nuevos proyectos, espacios de trabajo y aplicaciones Crear aplicaciones Java en Oracle JDeveloper Mejorar el diseo de marco de interfaz de usuario Depurar una aplicacin mediante el depurador de JDeveloper Definir clases mediante JDeveloper Describir cmo se puede utilizar JDeveloper para crear aplicaciones empresariales
Paleta de componentes
Editor de cdigos
Inspector de propiedades
Panel Structure
Archivos de proyecto
10
Las definiciones de J2SE nuevos son: Ejecutable de Java Una classpath Una ruta de acceso de origen Una ruta de acceso de documento
11 Copyright 2004, Oracle. Todos los derechos reservados.
12
13
14
15
Personalizacin de JDeveloper
Personalice el IDE Aspecto Entorno general Ventanas que se pueden mover Paleta de componentes Cargue mapas de teclas predefinidos Cambie de nombre las clases y los paquetes mediante la reprogramacin.
16
17
18
19
20
21
Resumen
En esta leccin, ha aprendido que: Oracle JDeveloper crea, depura y ejecuta todos los tipos de aplicaciones Java Oracle JDeveloper se puede utilizar para desarrollar:
Aplicaciones Java Servlets Java JSP EJB
24
25
Objetivos
Al finalizar esta leccin, debera estar capacitado para: Definir mtodos y variables de instancia Definir el mtodo de constructor no-arg (por defecto) Instanciar clases y llamar a mtodos de instancia Realizar la encapsulacin mediante paquetes para agrupar clases relacionadas Controlar el acceso con los modificadores de acceso public y private Utilizar mtodos y variables de clase
Mtodos
Objetos
Paquetes
Atributos
Referencias de objetos
mov1
mov2
Creacin de Objetos
Normalmente, los objetos se crean mediante el operador new:
ClassName objectRef = new ClassName();
mov1
(Cuando se ha instanciado)
int j = 3; j
Asignacin de Referencias
Si se asigna una referencia a otra, el resultado son dos referencias al mismo objeto:
Movie mov1 = new Movie("Gone..."); mov1 ttulo: Gone with clasificacin: PG
mov1
mov2
11
Definicin de Mtodos
Un mtodo en Java es equivalente a una funcin o a una subrutina en otros lenguajes.
12
Llamada a un Mtodo
Los objetos se comunican mediante mensajes: Todos los mtodos se definen dentro de una clase y no globalmente, como en los lenguajes tradicionales. La llamada a un mtodo siempre se produce en el contexto de un objeto concreto.
myPen.write( ): Programacin orientada a objetos Write (myPen): Programacin de estructura tradicional
13
14
Si el tipo de retorno es void, no ser necesario ningn retorno. Puede utilizar un retorno sin ningn valor para terminar un mtodo con un tipo de retorno nulo.
Copyright 2004, Oracle. Todos los derechos reservados.
15
public class Movie { private String title, rating; public String getRating(){ return rating; } public void setRating(String newRating){ rating = newRating; } Movie mov1 = new Movie(); } String r = mov1.getRating(); if (r.equals("G")) Utilice el
operador dot:
16
aMethod()
Movie mov1 = new Movie(); String rating = mov1.getRating(); String r = mov1.rating; // error: private ... if (rating.equals("G"))
17 Copyright 2004, Oracle. Todos los derechos reservados.
anObj.aMethod(num); System.out.println("num: " + num); public void aMethod(int arg) { arg if (arg < 0 || arg > 100) 150 arg = 0; System.out.println("arg: " + arg); }
18 Copyright 2004, Oracle. Todos los derechos reservados.
19
title rating
objetos Movie
title rating
Para llamar a un mtodo de clase, se utiliza el nombre de la clase o una referencia de objeto.
Movie.increaseMinPrice(.50); mov1.increaseMinPrice(.50);
22
23
Ejemplos en Java
Ejemplos de variables y mtodos estticos: main() Math.sqrt() System.out.println()
public class MyClass { public static void main(String[] args) { double num, root; root = Math.sqrt(num); System.out.println("Root is " + root); }
24
25
Customer Order
Util
OrderEntry OrderItem
26
CLASSPATH
C:\>set CLASSPATH=E:\Curriculum\courses\java\les06
28
Modificadores de Acceso
acmevideo
acmetools
public
public
protected
private
29
Resumen
En esta leccin, ha aprendido lo siguiente: Una definicin de clase especifica una plantilla para la creacin de objetos con funciones idnticas como, por ejemplo, mtodos y variables de instancia. Un objeto es una instancia de una clase determinada.
Para crear un objeto, utilice el operador new. Para manipular un objeto, utilice sus mtodos de instancia pblicos.
30
31
Objetivos
Al finalizar esta leccin, debera estar capacitado para: Proporcionar dos o ms mtodos con el mismo nombre en una clase Proporcionar uno o varios constructores para una clase Utilizar inicializadores para inicializar variables de clase y de instancia Describir el proceso de carga y de inicializacin de clases, as como el ciclo de vida de los objetos Definir y utilizar las clases internas
Mtodos de Sobrecarga
Varios mtodos de una clase pueden tener el mismo nombre. Los mtodos deben tener firmas distintas.
public class Movie { public void setPrice() { price = 3.50F; } public void setPrice(float newPrice) { price = newPrice; Movie mov1 = new Movie(); } mov1.setPrice(); } mov1.setPrice(3.25F);
mov1 mov2
public class Movie { private String title; private String rating = "G"; private int numOfOscars = 0; Todas las variables de instancia se inicializan de forma implcita en valores por defecto dependiendo del tipo de datos. La inicializacin ms compleja se debe colocar en un constructor.
5 Copyright 2004, Oracle. Todos los derechos reservados.
El compilador especifica un constructor no-arg slo si no se ha proporcionado de forma explcita ningn constructor.
Si se ha proporcionado de forma explcita algn constructor, el compilador no genera el constructor no-arg.
public class Movie { private String title; private String rating = "PG"; La clase Movie public Movie() { proporciona ahora title = "Last Action "; dos constructores. } public Movie(String newTitle) { title = newTitle; } Movie mov1 = new Movie(); } Movie mov2 = new Movie("Gone "); Movie mov3 = new Movie("The Good ");
Qu ocurre aqu?
Un mtodo final no se puede sustituir por una subclase. Una clase final no se puede subclasificar.
public final class Color { public final static Color black=new Color(0,0,0); }
Reclamacin de Memoria
Cuando se han perdido todas las referencias a un objeto, el objeto se marca para la recopilacin de desechos. La recopilacin de desechos reclama la memoria que utiliza el objeto. La recopilacin de desechos es automtica. No es necesario que el programador haga nada, pero puede ofrecer una indicacin a System.gc();.
10
Algn problema?
12
13
14
15
Resumen
En esta leccin, ha aprendido lo siguiente: Los mtodos se pueden sobrecargar en Java. Los mtodos de instancia reciben una referencia this al objeto actual. La mayora de las clases proporcionan uno o varios constructores para inicializar objetos nuevos. Las variables de clase y los mtodos de clase se pueden definir para comportamientos y propiedades de toda la clase. Las clases se pueden definir de varias formas dentro de una clase.
17
18
Objetivos
Al finalizar esta leccin, debera estar capacitado para: Crear cadenas en Java Utilizar los mtodos de conversin que proporcionan las clases wrapper predefinidas Utilizar la clase StringBuffer para manipular datos de caracteres Introducir las clases DateFormat, DecimalFormat y MessageFormat Examinar la salida estndar y la serializacin
Qu Es String?
String es una clase. Un objeto String contiene una secuencia de caracteres. Los objetos String son de slo lectura (inmutables); sus valores no se pueden cambiar despus de la creacin. La clase String representa todas las cadenas de Java.
Creacin de String
Asigne una constante entre comillas dobles a una variable String:
String category = "Action";
Utilice un constructor:
String empName = new String(Bob Smith");
Concatenacin de Cadenas
Utilice el operador + para concatenar cadenas.
System.out.println("Name = " + empName);
La clase String tiene un mtodo de instancia concat() que se puede utilizar para concatenar cadenas.
String trim();
No utilice ==.
10
Etc.
Las clases wrapper proporcionan mtodos para convertir un String en un primitivo y un primitivo en un String.
11
12
Utilice StringBuffer si necesita seguir agregando caracteres a una cadena. Nota: StringBuffer tiene un mtodo reverse().
13 Copyright 2004, Oracle. Todos los derechos reservados.
Formato de Clases
El paquete java.text contiene: Una clase abstracta denominada Format con el mtodo format() mostrado en el siguiente ejemplo:
public abstract class Format { public final String format(Object obj){ //Formats an object and produces a string. } }
Clases que formatean informacin sensible al cdigo local como, por ejemplo, fechas, nmeros y mensajes
DateFormat, NumberFormat y MessageFormat
14
15
16
Uso de DecimalFormat
DecimalFormat: Es una subclase concreta de NumberFormat para el formato de nmeros decimales. Permite la utilizacin de una gran variedad de parmetros y la localizacin a nmeros de juegos occidentales, de Oriente Medio y de Extremo Oriente. Utiliza la notacin numrica estndar en el formato.
public DecimalFormat(String pattern);
17
Prctica Guiada:
1. Cul es la salida de cada fragmento de cdigo?
a.
String s = new String("Friday"); if(s == "Friday") System.out.println("Equal A"); if(s.equals("Friday")) System.out.println("Equal B");
b.
int num = 1234567; System.out.println(String.valueOf(num).charAt(3));
18
Prctica Guiada:
2. Cul es la salida de cada fragmento de cdigo?
a.
String s1 = "Monday"; String s2 = "Tuesday"; System.out.println(s1.concat(s2).substring(4,8));
b.
// s3 begins with 2 spaces and ends with 2 spaces String s3 = " Monday "; System.out.println(s3.indexOf("day")); System.out.println(s3.trim().indexOf("day"));
19
20
Acerca de System.out.println
Comprensin de System.out.println() System es una clase del paquete java.lang. out es una variable public final static (de clase).
Se declara como una referencia de objeto PrintStream.
System.err tambin se proporciona como una referencia de objeto PrintStream para escribir en un error estndar.
21
22
Qu Es la Serializacin de Objetos?
La serializacin es un mecanismo de persistencia sencilla para guardar y restaurar flujos de bytes que contengan primitivos y objetos. Una clase indica que sus instancias se pueden serializar:
Mediante la implementacin de la interfaz java.io.Serializable o java.io.Externalizable Asegurando que todos sus campos son serializables, incluidas otras referencias de objeto Mediante el modificador transient para evitar que los campos se guarden y se restauren
23
24
Resumen
En esta leccin ha aprendido a: Crear cadenas en Java Utilizar los mtodos de conversin que proporcionan las clases wrapper predefinidas Utilizar la clase StringBuffer para manipular datos de caracteres Manipular objetos mediante las clases DateFormat, DecimalFormat y MessageFormat
25
26
Objetivos
Al finalizar esta leccin, debera estar capacitado para: Definir el concepto de herencia Utilizar la herencia para definir clases nuevas Proporcionar constructores adecuados Sustituir los mtodos de la superclase Describir qu es el polimorfismo Utilizar el polimorfismo de forma eficaz
Ejemplo de Herencia
La clase InventoryItem define mtodos y variables.
InventoryItem
Movie
Movie hereda todas las variables y todos los mtodos de InventoryItem. Si falta la palabra clave extends, java.lang.Object es la superclase implcita.
Copyright 2004, Oracle. Todos los derechos reservados.
Referencia super
Hace referencia a la clase base de nivel superior. Resulta til para llamar a constructores de clase base. Debe ser la primera lnea del constructor de la clase derivada. Se puede utilizar para llamar a cualquier mtodo de clase base.
11
12
public class InventoryItem { public float calcDeposit(int custId) { if public class Vcr extends InventoryItem { return 33.00; public float calcDeposit(int custId) { } itemDeposit = super.calcDeposit(custId); return (itemDeposit + vcrDeposit); }
14
Recuerde que la clase java.lang.Object es la clase raz de todas las clases Java. Los mtodos de la clase Object son heredados por sus subclases. El mtodo toString() se suele sustituir para conseguir el comportamiento polimrfico. Por ejemplo: public class InventoryItem {
public String toString() { return "InventoryItem value"; } } = new InventoryItem(); InventoryItem item System.out.println(item); // toString() called
15 Copyright 2004, Oracle. Todos los derechos reservados.
El compilador trata el objeto mediante su referencia (es decir, en funcin de su definicin de superclase). El entorno de tiempo de ejecucin de JVM crea un objeto de subclase, ejecutando los mtodos de subclase, si se han sustituido.
Copyright 2004, Oracle. Todos los derechos reservados.
16
17
18
19
20
Puede marcar una clase entera como final para evitar que se ample.
public final class Color { }
21
22
Resumen
En esta leccin, ha aprendido lo siguiente: Una subclase hereda todas las variables y todos los mtodos de su superclase. Puede especificar mtodos y variables adicionales y sustituir los mtodos. Una subclase puede llamar a un mtodo de superclase sustituido mediante super. El polimorfismo garantiza que se llama a la versin adecuada de un mtodo en tiempo de ejecucin.
23
24
Objetivos
Al finalizar esta leccin, debera estar capacitado para: Describir cmo se crean matrices de primitivos y objetos Procesar variables de lnea de comandos Trabajar con vectores Explorar otras recopilaciones Java como, por ejemplo, Enumerators, Iterators, ArrayLists y Hashtables Procesar las propiedades de sistema y de lnea de comandos
Qu es una Matriz?
Una matriz es una recopilacin de variables del mismo tipo. Cada elemento puede contener un nico elemento. Los elementos pueden ser primitivos o referencias de objeto. La longitud de la matriz se fija durante su creacin.
1 2 4 8
Null
arrayName
arrayName
0 0 0
1 2 4
null
Un elemento de matriz se puede transferir a cualquier mtodo; los elementos de matriz se transfieren por referencia.
Copyright 2004, Oracle. Todos los derechos reservados.
10
Matrices y Excepciones
ArrayIndexOutOfBoundsException se produce si un ndice de matriz no es vlido:
String[] list = new String[4]; //The following throws ArrayIndexOutOfBoundsException System.out.println(list[4]);
11
Matrices Multidimensionales
Java soporta matrices de matrices:
type[][] arrayname = new type[n1][n2]; int[][] mdarr = new int[4][2]; mdarr[0][0] = 1; mdarr[0][1] = 7; mdarr [0] [1] [2] [3]
12 Copyright 2004, Oracle. Todos los derechos reservados.
[0][0]
[0][1]
1 0 0 0
7 0 0 0
Revisin de main()
main() tiene un nico parmetro, args. args es una matriz de objetos String que contiene parmetros de lnea de comandos:
C:\> java SayHello Hello World public class SayHello { public static void main(String[] args) { if (args.length != 2) System.out.println("Specify 2 arguments"); else System.out.println(args[0]+" "+args[1]); }
13 Copyright 2004, Oracle. Todos los derechos reservados.
14
Modificacin de un Vector
Adicin de un elemento al final del vector:
String name = MyMovie.getNextName(); members.addElement(name);
15
Acceso a un Vector
Obtencin del primer elemento:
String s = (String)members.firstElement();
16
Interfaz Collection: Grupo genrico de elementos Interfaz Set: Grupo de elementos nicos Interfaz List: Grupo ordenado de elementos Interfaz Map: Grupo de claves nicas y sus valores SortedSet y SortedMap para Set y Map ordenados
Copyright 2004, Oracle. Todos los derechos reservados.
Permite la manipulacin del tamao de la matriz. Tiene una capacidad que aumenta a medida que se agregan elementos a la lista. La clase Hashtable: Es una clase heredada similar a las implementaciones Map. Se utiliza para almacenar objetos arbitrarios indexados por otro objeto arbitrario. Se utiliza normalmente con String como clave para almacenar objetos como valores.
Copyright 2004, Oracle. Todos los derechos reservados.
19
Uso de Iterators
La interfaz Iterator, que es parte de Java Collections Framework, se puede utilizar para procesar una serie de objetos. La interfaz java.util.Iterator: Implementa un enfoque orientado a objetos para acceder a los elementos de una recopilacin Sustituye al enfoque java.util.Enumeration Contiene los siguientes mtodos:
hasNext() devuelve true si existen ms elementos. next() devuelve el siguiente objeto, si hay alguno. remove() elimina el ltimo elemento devuelto.
20
Resumen
En esta leccin ha aprendido a: Crear matrices Java de primitivos Crear matrices de referencias de objeto Inicializar matrices de primitivos o referencias de objeto Procesar argumentos de lnea de comandos en el mtodo main() Utilizar el objeto Vector para implementar matrices redimensionables Utilizar clases ArrayList y Hashtable
21
22
Objetivos
Al finalizar esta leccin, debera estar capacitado para: Definir clases abstractas Definir mtodos abstractos Definir interfaces Implementar interfaces
Superclase abstracta
InventoryItem
Subclases concretas
Movie
VCR
public class Movie extends InventoryItem { private String title; public int getLength()
public class Vcr extends InventoryItem { private int serialNbr; public void setTimer()
Una interfaz enumera un juego de firmas de mtodo sin ningn detalle de cdigo. La clase que implementa la interfaz debe proporcionar detalles de cdigo para todos los mtodos de la interfaz. Una clase puede implementar muchas interfaces, pero slo puede ampliar una clase.
Ejemplos de Interfaces
Las interfaces describen un aspecto del comportamiento que requieren clases distintas. Por ejemplo, las clases que se pueden direccionar soportan la interfaz direccionable. Las clases pueden no estar relacionadas.
No direccionable
8
Direccionable
Creacin de Interfaces
Utilice la palabra clave interface:
public interface Steerable { int MAXTURN = 45; void turnLeft(int deg); void turnRight(int deg); }
Todos los mtodos se declaran como public abstract. Todas las variables se declaran como public static final.
Implementacin de Interfaces
Utilice la palabra clave implements:
public class Yacht extends Boat implements Steerable { public void turnLeft(int deg) {} public void turnRight(int deg) {} }
10
11
12
Ordenacin La pelcula devuelve el resultado de la comparacin. 3 Movie 2 sortObjects() pide una pelcula para compararla con otra.
13
Interfaz Sortable
Especifica el mtodo compare():
public interface Sortable { // compare(): Compare this object to another object // Returns: // 0 if this object is equal to obj2 // a value < 0 if this object < obj2 // a value > 0 if this object > obj2 int compare(Object obj2); }
14
Clase Sort
Contiene el mtodo sortObjects():
public abstract class Sort { public static void sortObjects(Sortable[] items) { // Step through the array comparing and swapping; // do this length-1 times for (int i = 1; i < items.length; i++) { for (int j = 0; j < items.length - 1; j++) { if (items[j].compare(items[j+1]) > 0) { Sortable tempitem = items[j+1]; items[j+1] = items[j]; items[j] = tempitem; } } } } }
15
Clase Movie
Implementa la interfaz Sortable:
public class Movie extends InventoryItem implements Sortable { String title; public int compare(Object movie2) { String title1 = this.title; String title2 = ((Movie)movie2).getTitle(); return(title1.compareTo(title2)); } }
16
Uso de la Ordenacin
Llame a Sort.sortObjects(Sortable []) con una matriz de Movie como argumento:
class myApplication { Movie[] movielist; // build the array of Movie Sort.sortObjects(movielist); }
17
18
Resumen
En esta leccin, ha aprendido lo siguiente: Una clase abstracta no se puede instanciar. Un mtodo abstracto tiene una firma pero no cdigo. Una interfaz es una recopilacin de mtodos abstractos que se van a implementar en otro lugar. Una clase puede implementar muchas interfaces. La implementacin de varias interfaces es comparable a la herencia mltiple.
19
20
Objetivos
Al finalizar esta leccin, debera estar capacitado para: Explicar los conceptos bsicos del manejo de excepciones Escribir cdigo para obtener y manejar excepciones Escribir cdigo para devolver excepciones Crear excepciones propias
Qu es una Excepcin?
Una excepcin es un evento inesperado.
Objeto Exception
No
Excepciones Java
Method1 //handle ex method2 method3 method4 method4 devuelve una excepcin; finalmente, method1 la obtiene.
Excepcin ex
Cada mtodo comprueba los errores y devuelve un cdigo de error a su mtodo de llamada.
6
Excepciones Java
method1 //handle ex method2 method3 method4 La excepcin se debe obtener y manejar en algn lugar.
Excepcin ex
Cdigo de error
Error
Exception
Errores irrecuperables
Excepciones activadas
RuntimeException
try { // call the method } catch (exception1) { // handle exception1 } catch (exception2) { // handle exception2 } finally { // any final processing }
10
int qty; String s = getQtyFromForm(); try { // Might throw NumberFormatException qty = Integer.parseInt(s); } catch ( NumberFormatException e ) { // Handle the exception } // If no exceptions were thrown, we end up here
11
12
13
14
15
16
Devolucin de Excepciones
Devuelva las excepciones mediante la palabra clave throw. Utilice throws en la declaracin del mtodo.
throw new Exception1(); public String getValue(int index) throws IndexOutOfBoundsException { if (index < 0 || index >= values.length) { throw new IndexOutOfBoundsException(); } }
17
Creacin de Excepciones
Ample la clase Exception.
public class MyException extends Exception { } public class UserFileException extends Exception { public UserFileException (String message) { super(message); } }
18
19
Resumen
En esta leccin, ha aprendido a: Utilizar las excepciones Java para la gestin slida de errores Manejar excepciones mediante try, catch y finally Utilizar la palabra clave throw para devolver una excepcin Utilizar un mtodo para declarar una excepcin en su firma para transferirla hasta la pila de llamadas
20
21
Diseo de Interfaz de Usuario: Conceptos Bsicos de Swing para la Planificacin del Diseo de la Aplicacin
Objetivos
Al finalizar esta leccin, debera estar capacitado para: Explicar AWT (Abstract Window Toolkit), Swing y JFC (Java Foundation Classes) Detallar la jerarqua de contencin UI de Swing Describir cmo se utilizan los gestores de diseos Agregar contenedores UI a una aplicacin para agrupar componentes Embeber componentes UI en contenedores UI Utilizar el Look and Feel conectable de Swing
Swing (javax.swing):
Biblioteca de interfaz grfica de usuario ms potente Creado sobre la jerarqua de clases AWT
Funciones Swing
Es un juego de componentes visuales disponible a partir de JDK 1.1, pero forma parte del paquete principal de JDK a partir de la versin 1.2: Componentes sencillos en comparacin con AWT API Look and Feel conectable InventoryItem Muchos ms componentes que AWT
JButton
JSlider
JTree
JComboBox
5
JTextField
JProgressBar
Jerarqua de Contencin
Contenedores de nivel superior
Marco Dilogo Applet
Marco
Contenedores intermedios
Panel Panel de desplazamiento
Componentes atmicos
Etiqueta Elementos de texto Botones
Panel Componentes atmicos
Contenedores Intermedios
Diseados para contener componentes (o contenedores): Se pueden anidar dentro de otros contenedores Tipos de contenedores intermedios:
Paneles para agrupar contenedores o componentes Paneles de desplazamiento para agregar barras de desplazamiento en componentes que pueden aumentar como, por ejemplo, una lista o un rea de texto Paneles de divisin para visualizar dos componentes en un rea fija, que puede ajustar el usuario Paneles de separador para contener varios componentes, mostrando slo uno a la vez, segn la seleccin del usuario Barras de herramientas para agrupar componentes como, por ejemplo, botones Marcos internos para ventanas anidadas
10 Copyright 2004, Oracle. Todos los derechos reservados.
Componentes Atmicos
Botones Casillas de control Recuadros combinados Texto Listas Etiquetas
11
12
Diseo Border
Tiene cinco reas: North, South, West, East y Center. El rea Center se ampla hasta rellenar todo el espacio disponible. Muestra un solo componente en cada rea. Hace que las reas sean tiles para contener paneles intermedios.
13
Diseo GridBag
Se basa en una cuadrcula. Permite que los componentes abarquen varias filas y varias columnas. Permite tamaos diferentes de las filas y de las columnas. Utiliza el tamao preferido del componente para controlar el tamao de celda.
14
Restricciones de GridBag
Fijacin
Reglas de relleno
15
Los gestores de diseos diferentes requieren argumentos diferentes para controlar la ubicacin del componente.
Copyright 2004, Oracle. Todos los derechos reservados.
16
Border null
VerticalFlow GridBag
Grid
17
18
JPanel myPanel = new JPanel(new BorderLayout()); JTextArea jTextArea1 = new JTextArea(); myPanel.setBorder(BorderFactory.createRaisedBevelBorder()); myPanel.add(jTextArea1, BorderLayout.SOUTH);
19
Utilice setBorder() para asignar un borde a un componente. Cree bordes con la clase javax.swing.BorderFactory. Cree los bordes por separado para utilizarlos con muchos componentes.
20
De forma similar a JFrame, puede contener componentes y contenedores intermedios y utilizar un gestor de diseos. Por defecto, no se puede cerrar, minimizar, ni maximizar y no es visible.
Utilice JDesktopPane como panel de contenido en el que se agregan los marcos internos:
Controla el tamao y la ubicacin de los marcos internos. Utiliza un gestor de diseos null por defecto.
21
22
23
Creacin de un Marco
Marco
24
Adicin de Componentes
Utilice la paleta de componentes para agregar elementos de Swing al marco
25
Afecta a los componentes Swing sencillos. Soporta Win, Mac, Java (Metal) y Motif. Utiliza la clase javax.swing.UIManager.
Proporciona el mtodo setLookAndFeel(), que acepta una cadena de nombre de clase de aspecto.
26
Resumen
En esta leccin, ha aprendido lo siguiente: Los marcos son contenedores de nivel superior. Los paneles son contenedores intermedios que se pueden anidar. Cada contenedor puede tener su propio gestor de diseos. Los gestores de diseos controlan la ubicacin del componente. Puede combinar gestores de diseos dentro de una aplicacin. Puede controlar el aspecto de la aplicacin.
27
Creacin de una clase basada en JInternalFrame para gestionar la creacin de pedidos y la introduccin de datos.
Cree la estructura jerrquica de diseo de contenedor para los componentes de marco de registro de pedidos. Agregue algunos componentes a este marco.
28
Objetivos
Al finalizar esta leccin, debera estar capacitado para: Agregar componentes Swing a una aplicacin Obtener y modificar el contenido de los componentes Proporcionar manejadores para tipos comunes de eventos Crear una barra de mens
Componentes Swing
Controles de texto
JTextField JPasswordField JTextArea JEditorPane JTextPane
Controles grficos
JTree JTable JToggleButton
Llamada al Editor de UI
Haga clic con el botn derecho del mouse y seleccione Open en el men contextual.
Creacin de un Men
Seleccione Create Menu Bar durante la creacin de la aplicacin. Agregue un objeto JMenuBar desde la paleta de componentes. Oracle JDeveloper crea:
JMenuBar para un contenedor visual de mens Jmenu, que representa un men de opciones, agregado a una barra de mens JmenuItems, que se colocan en un objeto JMenu
Cada objeto JMenuItem soporta eventos, interfaces y mtodos de manejador de la misma forma que otros componentes UI de Swing. Un objeto JMenuBar se puede agregar a cualquier contenedor de nivel superior como, por ejemplo, marcos, recuadros de dilogo o applets.
Copyright 2004, Oracle. Todos los derechos reservados.
Haga clic en el objeto de la barra de mens en el panel Structure para mostrar la barra de mens
Men contextual al hacer clic con el botn derecho del mouse en una opcin de men
10
11
12
Configuracin:
1. Cree un objeto de origen de evento. 2. Cree un objeto de listener de evento que implemente una interfaz con mtodos para manejar el objeto de evento. 3. Escriba un mtodo especfico del evento para manejarlo. 4. Registre el objeto de listener con el origen de evento para el evento especificado.
13
14
Origen OK
15
public void jbInit() { button1.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { // Your code to handle the ActionEvent } }); }
16
17
Controlador
Vista Vista
modifica
Notificacin de actualizacin
Modelo
El modelo representa los datos o la informacin. La vista proporciona una representacin visual de los datos. El controlador maneja los eventos modificando la vista o el modelo.
Actualice siempre los componentes Swing en la cola de thread de evento o utilice los mtodos SwingUtilities.
Copyright 2004, Oracle. Todos los derechos reservados.
19
Los cambios en el contenido del componente normalmente se realizan en el thread de manejo de eventos. Nota: Consulte la documentacin de API Java para obtener informacin detallada sobre las capacidades de cada componente.
20 Copyright 2004, Oracle. Todos los derechos reservados.
void setModel(ListModel)
Define el modelo que representa los datos y borra la seleccin. Utiliza la clase DefaultListModel para el modelo.
Devuelve el objeto seleccionado o null si no se ha seleccionado nada. Devuelve el ndice del elemento seleccionado o 1 si no se ha seleccionado nada.
21
2: Haga clic en la columna derecha para rellenar un nombre de mtodo. 3: Haga clic dos veces en la columna derecha para crear el mtodo.
23
Estilo de Cdigo de Manejo de Eventos por Defecto Generado por Oracle JDeveloper
public void jbInit() throws Exception { Find findButton.addActionListener( new java.awt.event.ActionListener() { public void actionPerformed(ActionEvent e) { findButton_actionPerformed(e); } }); void findButton_actionPerformed(ActionEvent e) { // Your code to handle the ActionEvent }
24 Copyright 2004, Oracle. Todos los derechos reservados.
public class JFrame1 extends JFrame { void findButton_actionPerformed(ActionEvent e){ // When the user clicks the button, display // the list of customers in jTextArea1 String findList = (Supplies-R-Us " + "\n" + Consulting Inc. " + "\n" + Just-In-Time Training "); jTextArea1.setText(findList); } }
25
Resumen
En esta leccin ha aprendido a: Agregar un componente Swing a un contenedor visual Obtener y modificar el contenido de los componentes Utilizar el modelo de manejo de eventos AWT para:
Crear un origen de evento Crear un listener de evento y cdigo de manejador Registrar un listener para el evento que va a manejar
Crear una barra de mens con mens y opciones de men Manejar eventos
26
27
Objetivos
Al finalizar esta leccin, debera estar capacitado para: Describir cmo se conectan las aplicaciones Java a la base de datos Describir cmo la base de datos Oracle soporta la funcionalidad de base de datos Java Cargar y registrar un controlador JDBC Conectarse a una base de datos Oracle Seguir los pasos para ejecutar una sentencia SELECT sencilla Asignar tipos de bases de datos Oracle simples a tipos Java
JDBC
Qu Es JDBC?
JDBC es una interfaz estndar para conectarse a bases de datos relacionales desde Java.
La API JDBC incluye el paquete de API principal en java.sql. La API JDBC 2.0 incluye la API del paquete opcional en javax.sql. La API JDBC 3.0 incluye la API principal y la API del paquete opcional.
Incluye el archivo del controlador JDBC de Oracle en CLASSPATH. La biblioteca de clases JDBC forma parte de J2SE (Java 2, Standard Edition).
Copyright 2004, Oracle. Todos los derechos reservados.
Base de datos
10
11
Tipo de Programa Applet Aplicacin cliente EJB, servlet (en la capa media) Procedimiento almacenado
12
Ejemplo:
Connection conn = DriverManager.getConnection( "jdbc:oracle:thin:@myhost:1521:ORCL", "scott","tiger");
13
jdbc:oracle:<driver>:@<database>
14
15
16
17
18
El Objeto ResultSet
El controlador JDBC devuelve los resultados de una consulta en un objeto ResultSet. ResultSet:
Mantiene un cursor apuntando a su fila de datos actual Proporciona mtodos para recuperar valores de columna
19
Ejemplo:
Statement stmt = conn.createStatement(); int rowcount = stmt.executeUpdate ("DELETE FROM order_items WHERE order_id = 2354");
20 Copyright 2004, Oracle. Todos los derechos reservados.
Ejemplo:
Statement stmt = conn.createStatement(); int rowcount = stmt.executeUpdate ("CREATE TABLE temp (col1 NUMBER(5,2), col2 VARCHAR2(30)");
21 Copyright 2004, Oracle. Todos los derechos reservados.
Manejo de Excepciones
Las sentencias SQL pueden devolver una excepcin java.sql.SQLException. Utilice mtodos de manejo de errores estndar de Java.
try { rset = stmt.executeQuery("SELECT empno, ename FROM emp"); } catch (java.sql.SQLException e) { ... /* handle SQL errors */ }
... finally { // clean up try { if (rset != null) rset.close(); } catch (Exception e) { ... /* handle closing errors */ } ...
27
Gestin de Transacciones
Por defecto, las conexiones estn en modo de confirmacin automtica. Utilice conn.setAutoCommit(false) para desactivar la confirmacin automtica. Para controlar las transacciones cuando no se encuentre en modo de confirmacin automtica, utilice:
conn.commit(): Confirmar una transaccin conn.rollback(): Realizar rollback de una transaccin
Al cerrar una conexin, se confirma la transaccin aunque est desactivada la confirmacin automtica.
28
El Objeto PreparedStatement
Un PreparedStatement evita nuevos anlisis de sentencias SQL. Utilice este objeto para sentencias que desee ejecutar ms de una vez. Un PreparedStatement puede contener variables que proporcione cada vez que ejecute la sentencia.
29
30
2. Ejecute la sentencia:
pstmt.executeQuery(); pstmt.executeUpdate();
int empNo = 3521; PreparedStatement pstmt = conn.prepareStatement("UPDATE emp SET ename = ? WHERE empno = ? "); pstmt.setString(1, "DURAND"); pstmt.setInt(2, empNo); pstmt.executeUpdate();
31 Copyright 2004, Oracle. Todos los derechos reservados.
32
Pool de Conexiones
Capa media
Servlet Java Origen de datos Cdigo de servidor de capa media ConnectionPoolDataSource Controlador JDBC Comandos de base de datos Base de datos
33
Resumen
En esta leccin, ha aprendido lo siguiente: JDBC proporciona una conectividad de base de datos para varias construcciones Java, incluidos servlets y aplicaciones cliente. JDBC es una interfaz estndar de Java y forma parte de J2SE. Los pasos para utilizar sentencias SQL en Java son registrar, conectar, ejecutar y cerrar. Las sentencias SQL pueden devolver excepciones. Puede controlar el comportamiento por defecto de las transacciones.
34
35
Objetivos
Al finalizar esta leccin, debera estar capacitado para: Definir la arquitectura de Java Web Start Describir las ventajas de utilizar Java Web Start Desplegar una aplicacin mediante Web Start
HTTP
3 HTTP 4
10
11
12
13
14
15
16
Incluya informacin para que se muestre al usuario durante la descarga (por ejemplo, ttulo de la aplicacin, proveedor y una breve descripcin)
Copyright 2004, Oracle. Todos los derechos reservados.
17
18
Resumen
En este mdulo, ha aprendido a: Describir cmo se ejecuta una aplicacin Java Web Start Describir las ventajas de utilizar Java Web Start Utilizar JDeveloper para desplegar una aplicacin mediante Web Start
19
20