lenguajes iii

94
Vicerrectoría Académica Proyecto P.A.V. Plataforma de Aprendizaje Virtual

Upload: olga-patricia-vasquez

Post on 09-Mar-2016

224 views

Category:

Documents


2 download

DESCRIPTION

Lenguajes III

TRANSCRIPT

Page 1: Lenguajes III

Vicerrectoría Académica

Proyecto P.A.V. Plataforma de Aprendizaje Virtual

Page 2: Lenguajes III

Vicerrectoría Académica

Proyecto P.A.V.

Plataforma de Aprendizaje Virtual

Page 3: Lenguajes III

MÓDULO VIRTUAL LENGUAJES III: JAVA

FABIO ALBERTO VARGAS

VICERRECTORÍA ACADÉMICA

PROYECTO P.A.V. PLATAFORMA DE APRENDIZAJE VIRTUAL

TECNOLÓGICO DE ANTIOQUIA INSTITUCIÓN UNIVERSITARIA

MEDELLÍN 2008

Page 4: Lenguajes III

Realización

Realización

Vicerrector Académico John Harvey Garavito Londoño

Docente (Autor) Fabio Alberto Vargas

Equipo Técnico P.A.V. Nubia Amparo Giraldo García Jhonatan Arroyave Jaramillo Giselle Andrea Tamayo Mármol

Tecnológico de Antioquia Institución Universitaria Plataforma de Aprendizaje Virtual

Proyecto P.A.V. 2008

Page 5: Lenguajes III

Unidad 1

Introducción a Java El Lenguaje de programación Java es una herramienta para el desarrollo de software que permite la incorporación de un conjunto de estructuras que facilitan la construcción de software, el Java posee una mayor facilidad de trabajo ya que cuenta con un sinnúmero de editores libres que se emplean para el desarrollo, en esta unidad se describe en forma general una introducción al Java y se da un inicio a las estructuras de programación con el proceso de entrada y salida de datos por consola empleando el editor JCreator

Page 6: Lenguajes III

1. Generalidades del Lenguaje Java

1.1. Generalidades del Lenguaje Java

1. Que es el Java: es un Lenguaje de Programación Orientado a Objetos, basado en el Lenguaje de Programación C++ que permite la creación de distintas aplicaciones a pequeña y gran escala en diferentes ambientes:

Aplicaciones tipo consola: son aquellas que se ejecutan en una ventana de MS-DOS, es decir en la línea de comandos utilizando formato de entrada y salida en forma de texto.

Aplicaciones tipo Windows: son aquellas basadas en el manejo de formularios y mensajes utiliza un entorno de ejecución en forma gráfica.

Tecnológico de Antioquia Institución Universitaria

Vicerrectoría Académica

2

Page 7: Lenguajes III

Aplicaciones para Internet (Appplets, JSP): Son aquellas generadas como herramienta para el desarrollo de servicios en Internet, que utilizan herramientas como JSP y Servlets para generar sitios Web ya sean estáticos o dinámicos.

Aplicaciones para dispositivos móviles: son aquellas que se ejecutan en un dispositivo móvil, como lo pueden ser celulares, PDA entre otros y que utilizan la tecnología J2ME de Java (Java 2 micro Edition).

Tecnológico de Antioquia Institución Universitaria

Vicerrectoría Académica

3

Page 8: Lenguajes III

1.2. Estructura del Lenguaje

El java es un lenguaje de programación que está dividido en paquetes, dentro de los paquetes están las clases, de las clases se generan los objetos y Los objetos a su vez tienen propiedades y métodos.

Todo programa en Java tiene que ir en una clase, la cual se debe definir previamente en el momento de la creación del archivo.Que es un Paquete: una agrupación jerárquica de objetos, que permiten su fácil localización, además de evitar confusión en uso y propósito de un objeto en particular, se deben ver los paquetes como carpetas en las cuales se almacenan clases, y para acceder a una clase en particular se debe especificar su localización. Algunos paquetes de Java son los siguientes:

import javax.swing import java.awt import java.io import java.net

Que es una Clase: Es una estructura genérica no tangible que reúne un conjunto de objetos que comparten las mismas características y funcionalidad y que puede ser utilizadas por los usuarios en la definición de las estructuras de datos y propiedades asociadas al programa que se desea desarrollar. En Java las clases se definen de la siguiente forma:class

Tecnológico de Antioquia Institución Universitaria

Vicerrectoría Académica

4

Page 9: Lenguajes III

nombreclase { //Atributos //Metodos } Que es Un Objeto: Es una Instancia de una Clase, la cual ya tiene definidas sus atributos y métodos. En Java un objeto se define de la siguiente manera: Clase objnum = new Clase();

Que es Herencia: la herencia es muy útil, ya que permite que un objeto tome código de otro objeto y lo haga parte del objeto, y que objetos que a primera vista sean muy diferentes compartan un comportamiento en común sin necesidad de repetir código. En Java la herencia se representa de la siguiente forma: public class extends ClaseTodos estos conceptos fundamentales se exploraran en sesiones posteriores en la medida en que se profundice en el lenguaje.

Hay que tener en cuenta que los archivos de Java tendrá extensión .java, mientras que el compilado tendrá extensión .class.

Tecnológico de Antioquia Institución Universitaria

Vicerrectoría Académica

5

Page 10: Lenguajes III

2. INGRESO AL PROGRAMA

2.1. Ingreso al Programa

1. Requerimientos necesarios: Para poder programar en java se requieren dos elementos fundamentales que garanticen el buen uso del lenguaje y que ayuden al programador en su proceso. Estos dos elementos son: el editor y el compilador. Para Java existen un conjunto muy variado de editores que varían desde su entorno, hasta el sistema operativo sobre el que pueden correr. Los editores más reconocidos son:

JCreator (Windows, Linux) Netbeans (Windows, Linux) Eclipse (Windows, Linux)

Tengamos presente que un editor es una herramienta que permite facilitar la codificación del lenguaje y su procesos de compilación y ejecución de una manera fácil y sencilla.

El otro elemento importante e infaltante es el Compilador que es el encargado de convertir el código fuente en un código ejecutable y entendible para la maquina. Los Compiladores de Java pertenecen a la familia conocida como JdK.

JDK 1.4.2 JDK1.5.0 JDK 1.6.0

Para la práctica de los ejercicios y del lenguaje utilizaremos el editor JCreator. El editor y el compilador los puedes bajar en las siguientes direcciones:

http://www.jcreator.com/ (pagina consultada el 22 de agosto de 2008)

http://java.sun.com/javase/downloads/ (pagina consultada el 22 de agosto de 2008)

Instalamos y a programar!

Tecnológico de Antioquia Institución Universitaria

Vicerrectoría Académica

6

Page 11: Lenguajes III

2.2. Editor de Java

2.2.1. Utilización del Editor

Para ingresar al editor necesitamos ubicar en nuestro equipo el programa JCreator, que varía dependiendo de la versión que se utiliza.

Luego debemos seleccionar la opción de Archivo (File), Nuevo (new), Archivo (File)

Tecnológico de Antioquia Institución Universitaria

Vicerrectoría Académica

7

Page 12: Lenguajes III

Seleccionar el tipo de archivo que se desea construir en este caso un archivo de Java (Java File).

Tecnológico de Antioquia Institución Universitaria

Vicerrectoría Académica

8

Page 13: Lenguajes III

Escribir el nombre del programa, que por ende se convierte en el nombre de la clase.

Y por ultimo comenzar la codificación con todas las instrucciones y estructuras que se verán a continuación.

Tecnológico de Antioquia Institución Universitaria

Vicerrectoría Académica

9

Page 14: Lenguajes III

3. SINTAXIS GENERAL DEL LENGUAJE

3.1. Comentarios

El Java ofrece la posibilidad de tres tipos de comentarios para ser utilizados en la organización general del código que se está desarrollando:

3.1.1. Comentarios para varias líneas:

/* Este es un comentario de varias líneas de código */

Con este tipo de comentarios se pueden desactivar también líneas de código que no se deseen que sean reconocidas por el compilador y por ende ejecutar.

3.1.2. Cometario de una sola línea

Para este tipo de comentarios se emplea los dos // ,Slash. Los comentarios inicial cuando se colocan los dos slash y va hasta el final de la línea.

// Este es un comentario para una sola línea

3.1.3. Comentario para documentación

Es un tipo de comentario es muy similar al de varias líneas pero teniendo en cuenta que la información comentado será usado por la herramienta javadoc. Se diferencia de los comentarios de varias líneas ya que se agrega un asterisco al inicio del comentario.

/** Este tipo de comentarios los utiliza la herramienta javadoc */

Tecnológico de Antioquia Institución Universitaria

Vicerrectoría Académica

10

Page 15: Lenguajes III

Tecnológico de Antioquia Institución Universitaria

Vicerrectoría Académica

11

3.2. Identificadores

Son los nombres utilizados para identificar el conjunto de variables, métodos, clases, objetos utilizados para programar las aplicaciones JAVA, estos identificadores pueden comenzar con una letra, el signo de _ (subrayado) o el signo de $ y de allí en adelante combinar letras, números. Los identificadores no se limitan a los caracteres ASCII, si el editor de texto lo soporta, se pueden escribir identificadores utilizando caracteres Unicode.

Es muy importante tener en cuenta que no hay limite al número de caracteres, pero si es importante manejar un cantidad moderada y acorde a lo que se está nombrando. Se diferencia mayúscula y minúscula.

Ejemplo de Identificadores validos: nombre promedio $valor suma_notas cont_pares _total calcular guardar telefono2

Hay que tener en cuenta que Java maneja un conjunto de palabras reservadas para funciones propias del lenguaje y que no pueden ser utilizadas como identificadores.

abstract default if private this

boolean do implements protected throw

break double import public throws

byte else instanceof return transient

case extends int short try

catch final interface static void

char finally long strictfp volatile

class float native super while

const for new Switch true

Continue goto package Synchronized false

3.3. LITERALES (Constantes)

Se define como un valor que no pueda ser modificado durante la ejecución del programa y que se define directamente en el código de la aplicación, los literales pueden ser números (enteros, flotantes, dobles), caracteres y cadenas de caracteres.

Se pueden definir literales numéricas a partir de cualquier tipo de dato que maneja Java para valores numéricos.

Page 16: Lenguajes III

o 123 // literal tipo int o 123.454 // literal tipo double

Se definen literales lógicos con las palabras claves true y false. Se definen literales tipo carácter incluyéndolas en comillas sencillas.

o ‘p’ o ‘g’

Se definen literales tipo cadena de caracteres se representan por una secuencia de caracteres entre comillas.

o “juan” o “257575”

3.4. OPERADORES

Son el conjunto de símbolos que permiten llevar a cabo un conjunto de operaciones y manejo de expresiones en el lenguaje Java, a continuación de describen los diferentes tipos de operadores:

Operador Significado Ejemplo Operadores aritméticos

+ Suma a + b - Resta a - b * Multiplicación a * b / División a / b % Módulo a % b

Operadores de asignación = Asignación a = b += Suma y asignación a += b (a=a + b) -= Resta y asignación a -= b (a=a - b) *= Multiplicación y asignación a *= b (a=a * b) /= División y asignación a / b (a=a / b) %= Módulo y asignación a % b (a=a % b)

Tecnológico de Antioquia Institución Universitaria

Vicerrectoría Académica

12

Page 17: Lenguajes III

Tecnológico de Antioquia Institución Universitaria

Vicerrectoría Académica

13

Operadores relacionales == Igualdad a == b != Distinto a != b < Menor que a < b > Mayor que a > b <= Menor o igual que a <= b >= Mayor o igual que a >= b

Operadores especiales ++ Incremento a++ (postincremento)

++a (preincremento) -- Decremento a-- (postdecremento)

--a (predecremento) (tipo)expr Cast a = (int) b + Concatenación de cadenas a = "cad1" + "cad2" . Acceso a variables y métodos a = obj.var1 () Agrupación de expresiones a = (a + b) * c

3.5. VARIABLES Y TIPOS DE DATOS Las variables son espacios de memoria que se reservan para almacenar datos de los cuales cada uno posee un nombre, un tipo de dato y un valor asignado. Cuando se define unas variables se requiere obligatoriamente asignar un tipo de dato que depende del uso de la variable y la información que se va a almacenar en ella. Sintaxis: tipo_dato nombrevariable = valorasignado; Ejemplo: int suma=0; Java maneja los siguientes tipos de datos.

Tipo Descripción Tamaño/Formato

Números enteros

byte Entero byte 8-bit 2's

short Entero corto 16-bit 2's

int Entero 32-bit 2's

long Entero largo 64-bit 2's

Números reales

float Punto flotante 32-bit IEEE 754

double Punto flotante de doble precisión 64-bit IEEE 754

Page 18: Lenguajes III

Otros tipos

char Un solo carácter 16-bit caracteres Unicode

boolean Un valor booleano true o false

En java se manejan básicamente tres tipos de variables que dependen de su ámbito de utilización:

Variables de instancia.

Se utilizan para definir los atributos de un objeto.

Variables de clase.

Son similares a las variables de instancia, con la excepción de que sus valores son los mismos para todas las instancias de la clase.

Variables locales.

Se declaran y se utilizan dentro de las definiciones de los métodos.

Tecnológico de Antioquia Institución Universitaria

Vicerrectoría Académica

14

Page 19: Lenguajes III

Tecnológico de Antioquia Institución Universitaria

Vicerrectoría Académica

15

4. Entrada y Salida de Datos por Consola

4.1. Programa inicial

Al iniciar la programación en Java es importante reconocer el proceso de entrada y salida de datos por consola que nos permite poner en práctica el conjunto de estructuras de programación que se desarrollaran más adelante, para entender este proceso presentamos el siguiente ejercicio que permite digitar dos números enteros, sumarlos e imprimir el resultado en la consola:

Page 20: Lenguajes III

Es necesario para el trabajo de entrada y salida de datos por consola la referencia al paquete import java.io.*;

Por favor digitar el código anterior, compilarlo y ejecutarlo.

Comentarios al programa anterior:

1. El flujo u objeto InputStreamReader es lo que permite leer datos. 2. El System.in u objeto InputStream es el argumento del constructor de

InputStreamReader y modela el origen de los datos que se leen, es decir, el teclado.

3. El filtro u objeto BufferedReader permite, mediante la utilización del método String readLine(), leer de forma óptima del flujo.

4.2. Estructuras básicas de Programación:

4.2.1. Condicional:

if ( condición) if (A > B)

proceso; B=10;

if(condición) if (A > B)

proceso1; A=10; else else proceso2; A=5;

if (condición)

{ proceso1; proceso2; } else { proceso3; proceso4; } //Este es el final del condicional.

Tecnológico de Antioquia Institución Universitaria

Vicerrectoría Académica

16

Page 21: Lenguajes III

Nota: Se destaca que cuando un condicional tienen varios procesos debe utilizarse llaves para referenciar toda la estructura.

Ejemplo de utilización del condicional con entrada y salida por consola que imprime el mayor de dos números y en caso de ser iguales imprime un mensaje

4.2.2. ESTRUCTURAS CICLICAS

FOR

for (valor_inicial; condicion_final; incremento) { proceso1; proceso2; }

Ej: for (I=1; I<=10; I++) {

Tecnológico de Antioquia Institución Universitaria

Vicerrectoría Académica

17

Page 22: Lenguajes III

proceso1; proceso2; }

En Java se puede definir la variable en el mismo ciclo. Ejemplo:

for (int I=1; I<=10; I++) { proceso1; proceso2; }

Ejemplo de Utilización de Ciclo for, Programa que genera los números del 1 al 10 en pantalla utilizando entrada y salida de datos por Consola.

Tecnológico de Antioquia Institución Universitaria

Vicerrectoría Académica

18

Page 23: Lenguajes III

WHILE

valor_inicial; while (condicion_final) { proceso1; proceso2; incremento/actualizar variable; }

Ej: I=1; while ( I<=10 ) { proceso1; proceso2; I++; }

Ejemplo de Utilización de Ciclo while , Programa que genera los números del 1 al 10 en pantalla utilizando entrada y salida de datos por Consola.

Tecnológico de Antioquia Institución Universitaria

Vicerrectoría Académica

19

Page 24: Lenguajes III

Tecnológico de Antioquia Institución Universitaria

Vicerrectoría Académica

20

DO WHILE

valor_inicial; do { proceso1; proceso2; incremento/actualizar variable; }while(condición);

Ej: I=1; do { proceso1; proceso2; I++; }while ( I<=10 );

Ejemplo de Utilización de Ciclo do while , Programa que genera los números del 1 al 10 en pantalla utilizando entrada y salida de datos por Consola.

Page 25: Lenguajes III

Tecnológico de Antioquia Institución Universitaria

Vicerrectoría Académica

SWITCH switch ( opción ) { case 1: proceso1; break; case 2: proceso2; break; default: proceso; }

Ejemplo de Utilización de la estructura switch, Programa que permite seleccionar una opción e imprimir el mensaje correspondiente.

21

Page 26: Lenguajes III

Unidad 2

Estructura de Datos en Java

El manejo y utilización de estructuras de datos es fundamental en los procesos de desarrollo de software, el Lenguaje de programación Java proporciona un conjunto de estructuras de almacenamiento temporal y también de almacenamiento permanente que facilitan los procesos de consulta de información de una forma fácil, rápida y que no requiere la utilización de grandes recursos de programación ni tecnológicos. En esta unidad se describen las principales y más utilizadas estructuras de datos tanto de almacenamiento temporal (Arreglos), como de almacenamiento permanente (Archivos).

Page 27: Lenguajes III

1. Arreglos

1.1. Arreglos Unidimensionales (Vectores)

1.1.1. Generalidades de los arreglos unidimensionales.

Arreglo Unidimensionales (Vectores): son estructuras de datos que permiten almacenar información en forma temporal, es decir solamente mientras el programa se esté ejecutando, los vectores poseen las siguientes características en lo referente a su forma de almacenamiento y manejo de la información:

Almacenan los elementos en posiciones contiguas de memoria. Poseen un nombre que se encarga de referenciar toda la estructura durante la

codificación del programa Para hacer referencia a los elementos almacenados en el vector es necesario

utilizar un índice que especifica el lugar que ocupa cada elemento dentro de la estructura de datos.

Poseen un tamaño asignado que determina la capacidad de almacenamiento de la estructura.

Permitir almacenar información solo de un mismo tipo de datos. (int, double, single).

Tecnológico de Antioquia Institución Universitaria

Vicerrectoría Académica

23

Page 28: Lenguajes III

Representación gráfica de un Vector

Esquema realizado por: Equipo Técnico P.A.V Septiembre del 2008

Elemento: Valor que se almacena en la estructura de datos y que debe corresponder al tipo de dato con el cual fue definido el vector. (int, double, float, single etc..).

Índice: Valor de tipo entero que indica la posición en la cual se almacena el valor dentro de vector.

Nombre: es el identificador del vector durante todo el proceso de codificación del programa. Los nombres de los vectores siguen las mismas normas descritas en la unidad anterior en el manejo de identificadores.

1.2. Arreglos Unidimensionales en Java (Vectores)

Declaración de Vectores Java: Para poder utilizar un arreglo unidimensional (vector) en Java se debe establecer las siguientes operaciones:

1.2.1. Declaración

Sintaxis tipodato nombrevector[ ];

Tecnológico de Antioquia Institución Universitaria

Vicerrectoría Académica

24

Page 29: Lenguajes III

Ejemplo int numeros [ ];

1.2.2. Dimensionar (Definir la capacidad de almacenamiento)

Sintaxis nombrevector = new tipodato[tamaño]; Ejemplo numeros = new int[5];

1.2.3. Operaciones básicas con vectores en Java

Llenado de un Vector: Es el proceso en el cual se ingresan los valores a la estructura para ser utilizados en procesos posteriores, los elementos que se almacenen en el vector deben corresponder al tipo de dato de la estructura y no deben sobrepasar la dimensión definida. Además los elementos en Java se almacenan desde la posición 0. El llenado de un vector se puede realizar de dos formas básicamente:

Recorriendo el Vector: se utiliza un ciclo que recorra el vector y en cada posición del vector se almacena un valor determinado.

Directamente: se ingresan directamente los valores al vector en el momento de su declaración.

Imprimir un Vector: es el proceso por el cual se imprimen los valores almacenados en el vector. Para ello se recorren cada una de las posiciones del vector y se imprimen los elementos almacenados en cada una de ellas.

El siguiente programa llena e imprime un vector dependiendo del tamaño digitado por el usuario. Por favor digitar, compilar y ejecutar el siguiente programa.

Tecnológico de Antioquia Institución Universitaria

Vicerrectoría Académica

25

Page 30: Lenguajes III

Nota: Los vectores se llena con un ciclo for y se imprimen también con la utilización de un ciclo for. Los vectores se pueden definir de cualquier tipo de dato (int, float, double, String).

Los arreglos unidimensionales también se pueden llenar directamente en el proceso de declaración como se muestra en el siguiente ejercicio. Por favor digitar, compilar y ejecutar el programa.

Tecnológico de Antioquia Institución Universitaria

Vicerrectoría Académica

26

Page 31: Lenguajes III

Nota: La cantidad de datos que se expresan en la declaración determinan el tamaño del vector.

El siguiente programa llena un vector e imprime la cantidad de ceros, la cantidad de números positivos y la cantidad de números negativos almacenados en el vector. Por favor digitar, compilar y ejecutar el siguiente programa.

Tecnológico de Antioquia Institución Universitaria

Vicerrectoría Académica

27

Page 32: Lenguajes III

Nota: Las Estructuras de Programación tipo Ciclo (for, while, y do while) permiten el recorrido de un vector, pero la estructura más recomendada es el ciclo for.

Tecnológico de Antioquia Institución Universitaria

Vicerrectoría Académica

28

Page 33: Lenguajes III

2. Arreglos Bidimensionales (Matrices)

2.1. Generalidades de los arreglos Bidimensionales.

Arreglo Bidimensionales (Matrices): son estructuras de datos que permiten almacenar información en forma temporal, es decir solamente mientras el programa se está ejecutando, las matrices poseen las siguientes características en lo referente a su forma de almacenamiento y manejo de la información:

Almacenan los elementos en posiciones contiguas de memoria. Poseen un nombre que se encarga de referenciar toda la estructura durante la

codificación del programa. Para hacer referencia a los elementos almacenados en la matriz es necesario utilizar

dos índices el primero que se encarga de referenciar las filas de la matriz y el segundo que se encarga de referenciar las columnas, la combinación de ambos índices especifican el lugar que ocupa cada elemento dentro de la estructura de datos.

Poseen un tamaño asignado que determina la capacidad de almacenamiento de la estructura, se debe indicar la cantidad de filas y la cantidad de columnas, la multiplicación de ambos indican la capacidad total de almacenamiento.

Permitir almacenar información solo de un mismo tipo de datos. (int, double, single)

Tecnológico de Antioquia Institución Universitaria

Vicerrectoría Académica

29

Page 34: Lenguajes III

Esquema realizado por: Equipo Técnico P.A.V Septiembre del 2008

Elemento: Valor que se almacena en la estructura de datos y que debe corresponder al tipo de dato con el cual fue declarada la matriz.

Índice fila: Valor de tipo entero que indica la fila en la cual se almacena el valor dentro de la matriz.

Índice columna: Valor de tipo entero que indica la columna en la cual se almacena el valor dentro de la matriz.

Nombre: es el identificador de la matriz durante todo el proceso de codificación del programa. Los nombres de las matrices siguen las mismas normas descritas en la unidad anterior en el manejo de identificadores.

2.2. Arreglos Bidimensionales en Java (Matrices)

Declaración de Matrices Java: Para poder utilizar un arreglo bidimensional (matriz) en Java se debe establecer las siguientes operaciones:

2.2.1. Declaración

Sintaxis tipodato nombrematriz[ ][ ];

Tecnológico de Antioquia Institución Universitaria

Vicerrectoría Académica

30

Page 35: Lenguajes III

Ejemplo

double salarios [ ][ ];

2.2.2. Dimensionar (Definir la capacidad de almacenamiento)

Sintaxis nombrematriz = new tipodato[cantidad filas] [cantidad columnas]; Ejemplo salarios = new double[5][4];

2.3. Operaciones básicas matrices en Java

Llenado de una Matriz: Es el proceso en el cual se ingresan los valores a la estructura para ser utilizados en procesos posteriores, los elementos que se almacenen en la matriz deben corresponder al tipo de dato de la estructura y no deben sobrepasar la dimensión definida. La dimensión depende de la cantidad de filas y la cantidad de columnas establecidas. El llenado de una matriz se puede realizar de dos formas básicamente:

Recorriendo la matriz: se utilizan dos ciclos uno que se encarga de recorrer las filas y otro ciclo que se encarga del recorrido de las columnas como ciclos anidados, la combinación de las filas y las columnas determinar la posición donde se almacena el valor.

Directamente: se ingresan directamente los valores a la matriz en el momento de su declaración.

Imprimir una Matriz: es el proceso por el cual se imprimen los valores almacenados en la Matriz. Para ello se recorren cada una de las posiciones de la Matriz y se imprimen los elementos almacenados en cada una de ellas. Se utilizan dos ciclos anidados uno que se encarga del recorrido de las filas y otro del recorrido de las columnas.

El siguiente programa llena e imprime una matriz de 3 filas por 3 columnas. Por favor digitar, compilar y ejecutar el programa.

Tecnológico de Antioquia Institución Universitaria

Vicerrectoría Académica

31

Page 36: Lenguajes III

Nota: Para hacer el llenado y la impresión de una matriz se deben usar dos variables para los índices y se utilizan 2 ciclos uno para las filas y otro para las columnas; a estos ciclos se les llama ciclos anidados.

El siguiente programa crea una matriz de 2 por 2 con nombres e imprime la matriz resultante. Por favor digitar, compilar y ejecutar el programa:

Tecnológico de Antioquia Institución Universitaria

Vicerrectoría Académica

32

Page 37: Lenguajes III

Nota: El programa anterior muestra la segunda forma de llenar una matriz directamente desde la declaración. Los datos que se ingresan determinan la dimensión de la matriz, tanto la cantidad de filas y la cantidad de columnas.

El siguiente programa llena un matriz e imprime la diagonal principal de dicha matriz. Por favor digitar, compilar y ejecutar el programa.

Tecnológico de Antioquia Institución Universitaria

Vicerrectoría Académica

33

Page 38: Lenguajes III

Nota: Una Matriz cuadrada es aquellas donde la cantidad de filas es igual a la cantidad de comunas.

Tecnológico de Antioquia Institución Universitaria

Vicerrectoría Académica

34

Page 39: Lenguajes III

3. Archivos

3.1. Generalidades de los archivos

QUE ES UN ARCHIVO: Los archivos son un conjunto de información de tipos de datos relacionados que se almacena en forma permanente en alguna parte del sistema de computo, para ser utilizado y referenciado en operaciones posteriores.

Los archivos poseen las siguientes características con respecto a su forma de almacenamiento y manejo de la información:

1. Almacenamiento de información en forma permanente. 2. No se requiere tener un tamaño preestablecido de almacenamiento en los archivos,

su capacidad depende más de las especificaciones del equipo de cómputo. esto significa que se pueden hacer archivos de datos más grandes o pequeños, según se necesiten.

3. Se puede tener acceso a la información del archivo desde diferentes programas. 4. Se puede tener gran capacidad de almacenamiento.

Una de las tareas más comunes en programación son los procesos de lectura y escritura sobre archivos. La información almacenada en un archivo pueden ser datos byte o caracteres (texto), y pueden ser leídos en la misma forma.

3.2. Archivos en Java

El lenguaje de programación Java cuenta con unas 20 clases para el acceso y manejo de archivos, cada una con su propio conjunto específico de métodos. Los Archivos en Java se pueden manejar de dos formas con Acceso de flujo en los cuales la información del archivo se trata como una secuencia de elementos que deber ser procesados uno seguido después de otro. Como acceso aleatorio que permite accesar directamente un elemento ubicado en una posición determinada del archivo. Por facilidad de programación y utilización referenciaremos la primera forma Acceso de Flujo.

3.3. Pasos a seguir para trabajar con archivos en Java:

Si se desea procesar datos de un archivo exsitente, se debe:

1. Abrir el archivo. 2. Leer o introducir los datos en las variables, un elemento a la vez. 3. Cerrar el archivo cuando se termine de trabajar con él.

Tecnológico de Antioquia Institución Universitaria

Vicerrectoría Académica

35

Page 40: Lenguajes III

Para transferir algunos datos de ciertas variables a un archivo, se debe:

1. Abrir el archivo. 2. Extraer o escribir los elementos en la secuencia requerida. 3. Cerrar el archivo cuando se termine de trabajar con él.

El siguiente programa crea un archivo “datospersonales.dat” y escribe la clave, el nombre y la edad de una persona. Por favor digitar, compilar y ejecutar el programa.

Nota: Observar que el proceso de grabar en el archivo requiere la utilización de un try-catch FileNotFoundException y IOException estos son obligatorios o no compila el programa. No olvidar cerrar el archivo. archivo.close();

Tecnológico de Antioquia Institución Universitaria

Vicerrectoría Académica

36

Page 41: Lenguajes III

Se observa en el programa anterior que la Clase DataOutputStream, define un objeto tipo archivo que permite la creación de un archivo en una ubicación determinada con diferentes tipo de extensión (.dat, .txt ).

Se observa que los métodos writeInt() permite grabar en el archivo datos numéricos de tipo entero. El método writeUTF() permite grabar en el archivo datos tipo cadena de caracteres (String).

La Clase FileOutputStream define que el archivo es una archivo de salida que se está creando y almacenado en una ubicación especifica.

El siguiente programa recorre e imprime los datos almacenados en el archivo datospersonales.dat” . Por favor digitar, compilar y ejecutar el programa.

Tecnológico de Antioquia Institución Universitaria

Vicerrectoría Académica

37

Page 42: Lenguajes III

Tecnológico de Antioquia Institución Universitaria

Vicerrectoría Académica

38

Se observa en el programa anterior que la Clase DataOutputStream, define un objeto tipo archivo que permite el acceso a un archivo en una ubicación determinada con diferentes tipo de extensión (.dat, .txt ).

Se observa que los métodos readInt() permite leer desde un archivo datos numéricos de tipo entero. El método readUTF() permite leer desde un archivo datos tipo cadena de caracteres (String).

La Clase FileInputStream define que el archivo es un archivo de entrada que se está accesando desde una ubicación específica.

Los métodos de DATAINPUTSTREAM que se utilizan para la lectura de los datos de los archivos son los siguientes:

int read(byte[] b) int read(byte[] b, int off, int len)

boolean readBoolean() byte readByte() char readChar()

double readDouble() float readFloat() void readFully(byte[] b) void readFully(byte[] b, int off, int len) int readInt()

String readLine() long readLong() short readShort()

int readUnsignedByte() int readUnsignedShort()

String readUTF() static String readUTF(DataInput in)

int skipBytes(int n)

Page 43: Lenguajes III

Unidad 3

Aplicaciones de entorno gráfico en java

Las aplicaciones comerciales que se desarrollan en la actualidad requieren de una alta dosis de componentes gráficos que garanticen una interfaz de usuario amigable y muy entendible por parte del usuario. Para ello es indispensable el conocimiento y manejo de controles de programación básicos que permitan al desarrollador su integración y diseño para el logro de interfaces de calidad. En esta unidad se describen los principales paquetes gráficos que utiliza Java y además los principales componentes gráficos como lo son ventanas de dialogo, ventanas contenedoras, controles básicos y toda la estructura de programación necesaria para su funcionamiento.

Page 44: Lenguajes III

Tecnológico de Antioquia Institución Universitaria

Vicerrectoría Académica

40

1. Paquetes Gráficos

1.1. Paquete swing

El paquete swing es un paquete que reúne un extenso conjunto de componentes que van desde los más simples, como etiquetas, hasta los más complejos, como tablas, árboles, y documentos de texto con estilo. Casi todos los componentes swing descienden de una misma clase base llamada JComponent que desciende de la clase de awt Container.

Imagen tomada de: http://www.usuarios.lycos.es/manualesjava/manuales/swing/swing.pdf

javax.swing: Reúne el conjunto de componentes gráficos básicos de swing, para el desarrollo de interfaces de usuario.

javax.swing.border: Reúne el conjunto de clases e interfaces que se usan para definir estilos de bordes específicos de los componentes gráficos del paquete swing.

javax.swing.colorchooser: Reúne el conjunto de clases e interfaces que dan soporte al componente JColorChooser, usado para selección de colores.

javax.swing.event: El paquete contiene todos los oyentes y eventos específicos de Swing. Los componentes Swing también soportan eventos y oyentes definidos en java.awt.event.

Page 45: Lenguajes III

Tecnológico de Antioquia Institución Universitaria

Vicerrectoría Académica

41

javax.swing.table: Reúne el conjunto de clases e interfaces para dar soporte al control de JTable. Este componente se usa para manejar datos en forma de hoja de cálculo.

javax.swing.text: Reúne el conjunto de clases e interfaces usadas por los componentes de texto, incluyendo soporte para documentos con o sin estilo.

javax.swing.tree: Reúne el conjunto clases e interfaces que dan soporte al componente JTree. Este componente se usa para mostrar y manejar datos que guardan alguna jerarquía.

javax.swing.undo: El paquete undo contiene soporte para implementar y manejar la funcionalidad deshacer/rehacer.

1.2. Paquete awt

AWT (Abstract Window Toolkit) es un paquete diseñado para la creación de interfaces gráficas de usuario es decir manejo de controles, manejo de color y programación. AWT Es un conjunto de clases que permiten el desarrollo de diferentes tipos de interfaces. La mayoría de los componentes AWT descienden de la clase java.awt.Component.

Imagen tomada de: http://www.usuarios.lycos.es/manualesjava/manuales/swing/swing.pdf

La combinación de clases gráficas del paquete awt y el paquete swing, permiten el diseño de interfaces de usuario amigables que garanticen una interacción dinámica que permite la creación de una aplicación comercial.

Page 46: Lenguajes III

2. Ventanas Gráficas

2.1. JOptionPane

Es una clase que permite la creación de diferentes tipos de ventanas de dialogo, desde ventanas para mostrar mensajes hasta ventanas de ingreso de información. La clase pertenece al paquete javax.swing.

2.1.1. Ventanas para Mostrar mensajes:

JOptionPane.showMessageDialog (null, "Mensaje”, “Titulo", TipoVentana);

Digite, compile y ejecute el siguiente programa para visualizar las diferentes formas de las ventanas de dialogo de mensajes.

Tecnológico de Antioquia Institución Universitaria

Vicerrectoría Académica

42

Page 47: Lenguajes III

2.1.2. Ventanas para solicitar información:

JOptionPane.showInputDialog ("Mensaje");

Digite, compile y ejecute el siguiente programa para visualizar la forma de utilización de la ventana de ingreso de datos

Tecnológico de Antioquia Institución Universitaria

Vicerrectoría Académica

43

Page 48: Lenguajes III

2.1.3. Ventanas para confirmar información:

JOptionPane.showConfirmDialog (null, "Mensaje", “titulo”, JOptionPane.YES_NO_OPTION);

Digite, compile y ejecute el siguiente programa para visualizar la forma de utilización de la ventana de confirmación.

Tecnológico de Antioquia Institución Universitaria

Vicerrectoría Académica

44

Page 49: Lenguajes III

2.2. JPanel y JFrame

1. JPanel: Es una clase de tipo contenedor que permite colocar controles básicos de una aplicación, utiliza un Controlador de Distribución para posicionar y dimensionar sus componentes. Los JPanel se utilizan para organizar el diseño de los controles de una aplicación y por ende su ubicación dentro de una clase superior, en este caso un JFrame.

JPanel mipanel = new JPanel (); // Creación del Panel mipanel.add (objeto1); // adicionar controles al panel, cada control se mipanel.add (objeto2); // debe adicionar de forma individual mipanel.add (…….);

JFrame: es una clase contenedora de orden superior que permite colocar diferentes tipos de controles para diseñar interfaces de usuario, dentro de estos controles se pueden referenciar otros tipos de contenedores de nivel menor, como lo son los JPane.

JFrame miframe = new JFrame (); // creación de un Frame (Formulario) miframe.add (mipanel); // adicionar el Panel al Formulario miframe.getContentPane ().add (objeto1); // adicionar controles al Formulario miframe.setVisible (true); // hacer visible el formulario miframe.setTitle (“Titulo”); // colocar un titulo al formulario miframe.setSize (ancho, alto); // dar tamaño al formulario

Tecnológico de Antioquia Institución Universitaria

Vicerrectoría Académica

45

Page 50: Lenguajes III

A continuación se describe un ejemplo que genera un formulario en blanco que utiliza como contenedor de controles un JPanel y como contenedor superior un JFrame. Por favor digitar, compilar y ejecutar el programa.

El resultado del programa sería:

Tecnológico de Antioquia Institución Universitaria

Vicerrectoría Académica

46

Page 51: Lenguajes III

También se pueden realizar las interfaces sin necesidad de utilizar una clase contenedora JPanel, sino directamente el JFrame. Por favor digitar, compilar y ejecutar el siguiente programa. “Otra Forma”

Tecnológico de Antioquia Institución Universitaria

Vicerrectoría Académica

47

Page 52: Lenguajes III

Tecnológico de Antioquia Institución Universitaria

Vicerrectoría Académica

48

Page 53: Lenguajes III

3. Controles Básicos

1. JButton: Clase para la creación de botones de comando, esta clase pertenece al paquete javax.swing.

Para utilizar un botón dentro de un formulario a fin de crear una interfaz de usuario se deben seguir los siguientes pasos:

1. Declarar el objeto

JButton btnnombre_boton;

2. Crear el objeto. btnnombre_boton=new JButton (“Titulo_caption”)

3. Dar posición al objeto botón. btnnombre_boton.setBounds (columna, fila, ancho, alto);

4. Agregar el objeto botón al formulario getContentPane ().add (btnnombre_boton);

Por favor digitar, compilar y ejecutar el siguiente programa.

49 Tecnológico de Antioquia Institución Universitaria

Vicerrectoría Académica

Page 54: Lenguajes III

En esta forma se pueden crear los botones directamente sobre un JFrame.

2. JTextField: Clase para la creación de cajas de texto, esta clase pertenece al paquete javax.swing.

Para utilizar una caja de texto dentro de un formulario a fin de crear una interfaz de usuario se deben seguir los siguientes pasos:

1. Declarar la caja de texto

JTextField txtnombre_cajatexto;

2. Crear el objeto. txtnombre_cajatexto=new JTextField ();

3. Dar posición al objeto botón. txtnombre_cajatexto.setBounds (columna, fila, ancho, alto);

4. Agregar el objeto botón al formulario getContentPane ().add (txtnombre_cajatexto);

Por favor digitar, compilar y ejecutar el siguiente programa.

Tecnológico de Antioquia Institución Universitaria

Vicerrectoría Académica

50

Page 55: Lenguajes III

3. JLabel: Clase para la creación de etiquetas, esta clase pertenece al paquete javax.swing.

Para utilizar una etiqueta dentro de un formulario a fin de crear una interfaz de usuario se deben seguir los siguientes pasos:

1. Declarar la Etiqueta

JLabel lblnombre_etiqueta;

2. Crear el objeto. lblnombre_etiqueta=new JLabel ();

Tecnológico de Antioquia Institución Universitaria

Vicerrectoría Académica

51

Page 56: Lenguajes III

3. Dar posición al objeto botón. lblnombre_etiqueta.setBounds (columna, fila, ancho, alto);

4. Agregar el objeto botón al formulario getContentPane ().add (lblnombre_etiqueta);

Por favor digitar, compilar y ejecutar el siguiente programa.

4. JRadioButton: Clase para la creación de botones de opción (Botones de radio), esta clase pertenece al paquete javax.swing.

Para utilizar Botones de opción dentro de un formulario a fin de crear una interfaz de usuario se deben seguir los siguientes pasos:

Tecnológico de Antioquia Institución Universitaria

Vicerrectoría Académica

52

Page 57: Lenguajes III

1. Declarar los Botones de opción (Botones de radio)

JRadioButton rdbnombre_botonopcion1; JRadioButton rdbnombre_botonopcion2;

2. Declarar el contenedor ButtonGroup nombre_grupo;

3. Crear el objeto.

rdbnombre_botonopcion1 =new JRadioButton (“Titulo”); rdbnombre_botonopcion2 =new JRadioButton (“Titulo”);

4. Crear el contenedor

nombre_grupo = new ButtonGroup ();

5. Agregar objetos al contenedor

nombre_grupo.add (rdbnombre_botonopcion1); nombre_grupo.add (rdbnombre_botonopcion2);

6. Dar posición a los botones de opción.

rdbnombre_botonopcion1.setBounds (columna, fila, ancho, alto); rdbnombre_botonopcion2.setBounds (columna, fila, ancho, alto);

7. Agregar los objetos al formulario

getContentPane ().add (rdbnombre_botonopcion1); getContentPane ().add (rdbnombre_botonopcion2);

Tecnológico de Antioquia Institución Universitaria

Vicerrectoría Académica

53

Page 58: Lenguajes III

5. JCheckBox: Clase para la creación de casillas de verificación, esta clase pertenece al paquete javax.swing.

Para utilizar una casilla de verificación dentro de un formulario a fin de crear una interfaz de usuario se deben seguir los siguientes pasos:

1. Declarar las casillas de verificación

Tecnológico de Antioquia Institución Universitaria

Vicerrectoría Académica

54

Page 59: Lenguajes III

JCheckBox chknombre_casilla1; JCheckBox chknombre_casilla2;

2. Crear el objeto.

chknombre_casilla1=new JCheckBox (“Titulo”, estado); chknombre_casilla2=new JCheckBox (“Titulo”, estado);

3. Dar posición al objeto botón.

chknombre_casilla1.setBounds (columna, fila, ancho, alto); chknombre_casilla2.setBounds (columna, fila, ancho, alto);

4. Agregar el objeto botón al formulario

getContentPane ().add (chknombre_casilla1); getContentPane ().add (chknombre_casilla2);

Nota: El estado indica si la casilla esta activada o desactivada (true, false)

Por favor digitar, compilar y ejecutar el siguiente programa.

Tecnológico de Antioquia Institución Universitaria

Vicerrectoría Académica

55

Page 60: Lenguajes III

6. JComboBox: Clase para la creación de listas desplegables, esta clase pertenece al paquete javax.swing.

Para utilizar una lista desplegable dentro de un formulario a fin de crear una interfaz de usuario se deben seguir los siguientes pasos:

1. Declarar la Lista desplegable

JComboBox cmbnombre_lista1;

2. Crear el objeto.

cmbnombre_lista1=new JComboBox ();

3. Agregar elementos a la Lista

cmbnombre_lista1.addItem (“elemento1”); cmbnombre_lista1.addItem (“elemento2”); cmbnombre_lista1.addItem (“elemento3”);

4. Dar posición al objeto botón.

cmbnombre_lista1.setBounds (columna, fila, ancho, alto);

5. Agregar el objeto botón al formulario

getContentPane ().add (cmbnombre_lista1);

Tecnológico de Antioquia Institución Universitaria

Vicerrectoría Académica

56

Page 61: Lenguajes III

Por favor digitar, compilar y ejecutar el siguiente programa.

Otra forma de realizar el diseño de una interfaz de usuario utilizando los controles anteriores, con el manejo de un contenedor JPanel, en el cual se ponen los controles y luego el panel se adiciona al JFrame.

Por favor digitar, compilar y ejecutar el siguiente programa.

Tecnológico de Antioquia Institución Universitaria

Vicerrectoría Académica

57

Page 62: Lenguajes III

Tecnológico de Antioquia Institución Universitaria

Vicerrectoría Académica

58

Page 63: Lenguajes III

4. Manejo De Eventos

4.1. Introducción

El Java utiliza varias formas para referenciar y programar los objetos que hacen parte de una interfaz de usuario (JButton, JTextField, JComboBox, JRadioButton, JCheckBox), en cada uno de ellos se utilizan diferentes eventos tales como: el evento click, y el enter que son los más utilizados.

El Java dentro de sus formas de manejar los eventos utiliza una estructura general, de la cual se derivan todos los demás eventos. Además para poder utilizar la estructura se debe referenciar el paquete java.aw.event que contiene los diferentes métodos que permitan detectar el objeto y el evento respectivo.

4.2. Estructura general de programación y manejo de eventos

nombreobjeto.addActionListener (new ActionListener () { public void actionPerformed (ActionEvent nombrevento) { // procesos; // procesos;

} });

Nota: con esta estructura de programación se pueden programar los controles de java y estos responden a su evento predeterminado, es decir los JButton al evento click, los JTextField al evento enter, los JRadioButton al evento click, Los JComboBox al evento Click.

Por favor digitar, compilar y ejecutar el siguiente programa: un programa que toma un valor de una caja de texto y al darle click al botón de cuadrado, imprime su cuadrado en una ventana de mensaje.

Tecnológico de Antioquia Institución Universitaria

Vicerrectoría Académica

59

Page 64: Lenguajes III

Tecnológico de Antioquia Institución Universitaria

Vicerrectoría Académica

60

Page 65: Lenguajes III

4.3. DESCRIPCIÓN GENERAL DE EVENTOS

Todos los controles se pueden programar con la estructura de programación descrita anteriormente.

A continuación describimos la estructura de programación de cada control básico:

JButton: El control responde al evento predeterminado Click

Btnnombre_boton.addActionListener (new ActionListener () { public void actionPerformed (ActionEvent nombrevento) { // procesos; // procesos;

} });

JTextField: El control responde al evento predeterminado enter

Nombrecaja_texto.addActionListener (new ActionListener () { public void actionPerformed (ActionEvent nombrevento) { // procesos; // procesos;

} });

JRadioButton: El control responde al evento predeterminado Click

Nombreboton_opcion.addActionListener (new ActionListener () { public void actionPerformed (ActionEvent nombrevento) { // procesos; // procesos;

} });

JCheckBox: El control responde al evento predeterminado Click

Tecnológico de Antioquia Institución Universitaria

Vicerrectoría Académica

61

Page 66: Lenguajes III

Nombrecasilla.addActionListener (new ActionListener () { public void actionPerformed (ActionEvent nombrevento) { if(casilla.isSelected()) { // procesos; // procesos; }

} });

El método isSelected () = determina que la casilla esta seleccionada

JComboBox: El control responde al evento predeterminado Click

Nombrelista.addActionListener (new ActionListener () { public void actionPerformed (ActionEvent nombrevento) { String respuesta; Respuesta = (String)nombrelista.getSelectedItem (); if(resp.equals(“elementoLista”)==true) { //proceso; //proceso; } });

Por favor digitar, compilar y ejecutar el siguiente programa: de acuerdo a las opciones de la lista, imprime un mensaje.

Tecnológico de Antioquia Institución Universitaria

Vicerrectoría Académica

62

Page 67: Lenguajes III

Tecnológico de Antioquia Institución Universitaria

Vicerrectoría Académica

63

Page 68: Lenguajes III

4.4. EVENTOS ESPECIFICOS

• Evento Click

nombreobjeto.addMouseListener (new MouseAdapter () { public void mouseClicked(MouseEvent me){ //proceso; //proceso; } }); Este evento se puede aplicar a la mayoría de controles básicos de programación. Por favor digitar, compilar y ejecutar el siguiente programa

Tecnológico de Antioquia Institución Universitaria

Vicerrectoría Académica

64

Page 69: Lenguajes III

• Evento enter

txtcaja.addKeyListener (new KeyAdapter () { public void keyPressed(KeyEvent evt){ int key = evt.getKeyCode(); if (key == KeyEvent.VK_ENTER) { // proceso; //proceso; } } });

Tecnológico de Antioquia Institución Universitaria

Vicerrectoría Académica

65

Page 70: Lenguajes III

Por favor digitar, compilar y ejecutar el siguiente programa

Tecnológico de Antioquia Institución Universitaria

Vicerrectoría Académica

66

Page 71: Lenguajes III

Tecnológico de Antioquia Institución Universitaria

Vicerrectoría Académica

67

Page 72: Lenguajes III

Unidad 4

Acceso a Bases de Datos

El Acceso a datos y muy especialmente a bases de datos constituyen un eje primordial en el desarrollo de aplicaciones de software comerciales, que garanticen procesos básicos de consulta, almacenamiento, actualización y eliminación de información referente a contextos y soluciones determinadas. Las actividades comerciales de hoy en día deben tener la información como eje primordial y por tal motivo las aplicaciones deben servir de apoyo para su administración. En esta unidad se describen las principales estructuras, clases, y paquetes que se requieren para realizar operaciones sobre información almacenada en una base de datos y que se pueden utilizar para gestionar procesos de una organización. .

Page 73: Lenguajes III

1. Conexión

1. Tecnología JDBC (JAVA DATABASE CONNECTIVITY)

La JDBC (Java Database Connectivity) es una API brinda a los programadores de aplicaciones comerciales en java una forma estándar de acceso a las diferentes bases de datos, además permite la ejecución y el procesamiento de instrucciones SQL para la realización de operaciones básicas sobre la aplicación (consulta, almacenamiento, actualización y eliminación) una forma homogénea de acceso a diferentes Sistemas de Bases de Datos.

El driver JDBC es una implementación de varias interfaces pertenecientes al paquete java.sql y javax.sql. Este permite traducir las llamadas de acceso a datos de cada sistema de base de datos específico.

Existen varios tipos de drivers JDBC para acceso a los datos de una base de datos determinado, en esta unidad utilizamos el manejo de la arquitectura JDBC – ODBC

El ODBC (Open DataBase Connectivity, Conectividad abierta a Base de Datos) fue creado originalmente para proporcionar una API estándar de acceso a Bases de Datos en la plataforma Microsoft Windows para Bases de Datos como por ejemplo SQL Server, Access, FoxPro, Oracle. A través del tiempo se ha ido ampliando a otras plataformas. El ODBC brinda la posibilidad de establecer un puente entre las llamadas entre la API JDBC y la API ODBC que permite la conexión directa con la base de datos.

El nombre del drivers utilizado para la conexión con la base de datos cuando se utiliza la maquina virtual de sun (más tradicional) es el siguiente:

Tecnológico de Antioquia Institución Universitaria

Vicerrectoría Académica

69

Page 74: Lenguajes III

sun.jdbc.odbc.JdbcOdbcDriver

El nombre del drivers utilizados para la conexión con la base de datos cuando se utiliza la maquina virtual de Microsoft es el siguiente:

com.ms.jdbc.odbc.JdbcOdbcDriver

Nota 1: Sun ofrece una lista de drivers con un motor de búsqueda en la página web: http://industry.java.sun.com/products/jdbc/drivers

Nota 2: Hoy en día muchas aplicaciones utilizan una o varias bases de datos para almacenar y recuperar información de muy variado tipo. La tecnología JDBC permite al desarrollador construir aplicaciones que utilicen datos almacenados en una base de datos. La tecnología JDB|C proporciona al desarrollador de bases de datos una capa de abstracción por encima de cualquier gestor de base de datos particular y de su interfaz de programación correspondiente. Mediante esta tecnología, las aplicaciones son independientes de cualquier gestor concreto y su interoperabilidad es mayor.

Tecnológico de Antioquia Institución Universitaria

Vicerrectoría Académica

70

Page 75: Lenguajes III

2. Creación del ODBC de la base de datos

Para llevar a cabo la conexión de la base de datos con la aplicación, se debe crear el origen de datos que permita crear un puente entre el aplicativo y la base de datos. A continuación se describen los pasos para crear un origen de datos para una Base de Datos de Microsoft ACCESS 2003 o 2007. De igual manera se pueden realizar para otros sistemas de bases de datos como: SQLServer, MySQL etc.

Para crear el origen de datos en sistemas operativos como Windows XP, se debe acceder al panel de control, de allí seleccionar herramientas administrativas y por ultimo origen de datos de ODBC32.

A continuación se debe agregar un DSN de usuario. Dar Clic en el botón de agregar

Tecnológico de Antioquia Institución Universitaria

Vicerrectoría Académica

71

Page 76: Lenguajes III

Luego se debe seleccionar el driver de conexión, de acuerdo al sistema de base de datos con el cual se quiera conectarse. En el caso de ACCESS, se selecciona el driver: Microsoft Access Driver (*.mdb, *.accdb).

Dar clic en el botón de finalizar

Tecnológico de Antioquia Institución Universitaria

Vicerrectoría Académica

72

Page 77: Lenguajes III

Se debe seleccionar la base de datos, dando clic en el botón seleccionar, además se debe especificar el nombre del origen de datos ya que este es él que se requiere utilizar en el código fuente de Java para la conexión. Por organización se sugiere que el nombre del origen de datos sea el mismo que el de la base de datos en este caso “Almacén”

Se da clic en el botón aceptar para terminar la creación del origen de datos y ya poder codificar la conexión en Java.

Tecnológico de Antioquia Institución Universitaria

Vicerrectoría Académica

73

Page 78: Lenguajes III

3. Pasos de para la conexión

• Crear la base de datos en el sistema de bases de datos seleccionado. • Crear el origen de datos como se explica en la sesión anterior. • Codificar el formulario que queremos conectar, teniendo en cuenta el siguiente

conjunto de instrucciones.

o Establecer el paquete de conexión

Antes de utilizar las clases de conexión y establecer el driver se debe especificar el paquete de manejo de datos de java, es decir escribir la siguiente línea de código:

import java.sql.*;

o Cargar el driver de conexión con la base de datos:

Cargar el driver o drivers que queremos utilizar es muy fácil y sólo requiere la implementación de una línea de código.

Forma 1:

Class.forName(“sun.jdbc.odbc.JdbcOdbcDriver”);

Forma 2:

String driver=“sun.jdbc.odbc.JdbcOdbcDriver”;

Class.forName(driver);

o Hacer la Conexión con la base de datos utilizando el ODBC creado

A continuación se debe establecer la relación entre el driver y el controlador de base de datos utilizado, que depende del origen de datos creado para la base de datos.

String url = "jdbc: odbc: Almacen";

Connection con = DriverManager.getConnection(url, “”, “”);

En la instrucción String url=jdbc:odbc: Almacén se establece el nombre del origen de datos que comunica con la base de datos creada. A continuación se crea un objeto de la clase Connection que establece la conexión directa con el origen de datos.

Tecnológico de Antioquia Institución Universitaria

Vicerrectoría Académica

74

Page 79: Lenguajes III

Nota 3: El código de Conexión se debe especificar dentro de una excepción en un bloque try-catch que controle la SQLException. Excepción que se produce en el acceso a la base de datos.

Nota 4: Esta forma de conexión es recomendada para diferentes sistemas de bases de datos, pero especialmente ACCESS y SQLServer.

1. Ejemplo de conexión con base de datos

Para el siguiente ejemplo utilizamos una base de datos de Access llamada Almacén.

Luego de tener la base de datos procedemos a la creación del origen de datos ODBC, que se explico en el tema anterior y lo llamamos: Almacén

A continuación referenciamos el código Java que permite establecer la conexión con la base de datos

Tecnológico de Antioquia Institución Universitaria

Vicerrectoría Académica

75

Page 80: Lenguajes III

El código de conexión de con la base de datos se debe referenciar dentro del constructor de la clase. Se anexa ejemplo completo de conexión con un formulario Clientes. Clientes1.java

Tecnológico de Antioquia Institución Universitaria

Vicerrectoría Académica

76

Page 81: Lenguajes III

4. Operaciones Básicas

4.1. Operaciones de búsqueda

Para la creación de operaciones de búsqueda sobre la base de datos se deben llevar a cabo las siguientes opciones:

• Declarar un objeto de la clase Statement que se encarga de enviar las sentencias SQL al controlador de la base de datos para llevar a cabo la operación determinada. En este caso una sentencia de tipo select

Statement sql;

String cadena = “select * from Clientes where cedula=’”+txtcedula.getText () +”’”; sql = con.createStatement (cadena);

• Crear un objeto de la clase ResultSet que permita almacenar el resultado de la consulta de tipo select que retorna unos resultados de acuerdo a la consulta realizada.

ResultSet rs;

• Ejecutar la sentencia SQL para que se lleve a cabo la operación solicitada y almacenar el resultado de forma temporal en un objeto de tipo ResultSet.

rs = sql.executeQuery (cadena);

El siguiente ejemplo es el código que permite consultar la información de un cliente que se encuentra almacenado en la base de datos cuando da enter en la cedula.

Tecnológico de Antioquia Institución Universitaria

Vicerrectoría Académica

77

Page 82: Lenguajes III

A continuación se refencia en el siguiente archivo el código completo de Java para buscar un cliente en una Tabla Clientes de la base de datos. Buscar.java (Insertar el CD y buscar el material de apoyo)

Tecnológico de Antioquia Institución Universitaria

Vicerrectoría Académica

78

Page 83: Lenguajes III

4.2. Operaciones de Almacenamiento

Para la creación de operaciones de almacenamiento de información sobre la base de datos se deben llevar a cabo las siguientes opciones:

• Declarar un objeto de la clase Statement que se encarga de enviar las sentencias SQL al controlador de la base de datos para llevar a cabo la operación determinada. En este caso una sentencia de tipo insert into

Statement sql; String cadena = “insert into clientes values (‘”+txtcedula.getText()+”’,

Tecnológico de Antioquia Institución Universitaria

Vicerrectoría Académica

79

Page 84: Lenguajes III

‘”+txtnombre.getText()”’,’”+txttelefono.getText()+”’)”; sql = con.createStatement (cadena);

• Ejecutar la sentencia SQL para que se lleve a cabo la operación solicitada y se actualice la información de la base de datos.

sql.executeUpdate (cadena); El siguiente muestra el código que permite almacenar la cedula, el nombre y el teléfono de un cliente en la base de datos cuando se da clic en el botón de Guardar.

A continuación se referencia en el siguiente archivo el código completo de Java para almacenar un cliente en una Tabla Clientes de la base de datos. Guardar.java(Insertar el CD y buscar el material de apoyo)

Tecnológico de Antioquia Institución Universitaria

Vicerrectoría Académica

80

Page 85: Lenguajes III

4.3. Operaciones de Actualización

Para la creación de operaciones de actualización de la información almacenada en la base de datos se deben llevar a cabo las siguientes opciones:

• Declarar un objeto de la clase Statement que se encarga de enviar las sentencias SQL al controlador de la base de datos para llevar a cabo la operación determinada. En este caso una sentencia de tipo update

Statement sql;

Tecnológico de Antioquia Institución Universitaria

Vicerrectoría Académica

81

Page 86: Lenguajes III

String cadena = “update clientes set nombre= ‘”+txtnombre.getText()+”’, telefono=’”+txttelefono.getText()+”’ where cedula = ‘”+txtcedula.getText()+”’”; sql = con.createStatement (cadena);

• Ejecutar la sentencia SQL para que se lleve a cabo la operación solicitada y se actualice la información de la base de datos.

sql.executeUpdate (cadena);

El siguiente código fuente permite actualizar el nombre y el teléfono de un cliente en la base de datos cuando se da clic en el botón de actualizar.

A continuación se referencia en el siguiente archivo el código completo de Java para actualizar la información de un cliente en una Tabla Clientes de la base de datos. Actualizar.java (Insertar el CD y buscar el material de apoyo)

Tecnológico de Antioquia Institución Universitaria

Vicerrectoría Académica

82

Page 87: Lenguajes III

4.4. Operaciones de Eliminación

Para la creación de operaciones de eliminación de información sobre la base de datos se deben llevar a cabo las siguientes opciones:

• Declarar un objeto de la clase Statement que se encarga de enviar las sentencias SQL al controlador de la base de datos para llevar a cabo la operación determinada. En este caso una sentencia de tipo delete

Statement sql;

Tecnológico de Antioquia Institución Universitaria

Vicerrectoría Académica

83

Page 88: Lenguajes III

String cadena = “delete * from Clientes where cedula=’”+txtcedula.getText () +”’”; sql = con.createStatement (cadena);

• Ejecutar la sentencia SQL para que se lleve a cabo la operación solicitada y se elimine la información de la base de datos.

sql.executeUpdate (cadena);

El siguiente código permite eliminar un registro especifico de la tabla clientes dependiendo de la cedula digitada todo al dar clic en el botón de eliminar.

A continuación se referencia en el siguiente archivo el código completo de Java para eliminar la información de un cliente en una Tabla Clientes de la base de datos. Eliminar.java (Insertar el CD y buscar el material de apoyo)

Tecnológico de Antioquia Institución Universitaria

Vicerrectoría Académica

84

Page 89: Lenguajes III

Tecnológico de Antioquia Institución Universitaria

Vicerrectoría Académica

85

Page 90: Lenguajes III

5. Tablas Y Consultas

5.1. Introducción al manejo de tablas

Para el manejo de tablas en java se utiliza la clase JTable, esta clase se utiliza para listar, organizar y ordenar información proveniente de una base de datos. La clase JTable se encarga de la parte grafica, que es la que se visualiza dentro del formulario La clase JTable brinda mucha facilidad, ya que permite la creación de tablas básicas y muy sencillas, hasta tablas de alta complejidad de información y estructura.

Para la creación de tablas se requieren los siguientes pasos e instrucciones:

1. Especificar el paquete que referencia las clases para el manejo de la tabla

import javax.swing.table.DefaultTableModel;

2. Declarar un objeto de la clase JTable

final JTable tabla;

3. Especificar un vector de caracteres que especifique los títulos de la tabla

String[] titColumna = {"Cedula", "Nombre", "Telefono", };

4. Definir una matriz de objetos que permita listar la información que se visualiza en la tabla

Object[][] data ={{}};

5. Establecer un objeto de la clase DefaultTableModel que permite realizar el trabajo interno sobre la tabla, de tal manera que se puedan agregar y quitar registros.

final DefaultTableModel dtm; dtm= new DefaultTableModel(data, titColumna); tabla = new JTable(dtm);

6. Colocar la tabla sobre una clase JScrollPane para permitir su visualización

final JScrollPane panel = new JScrollPane( tabla );

Tecnológico de Antioquia Institución Universitaria

Vicerrectoría Académica

86

Page 91: Lenguajes III

5.2. Propiedades básicas de las tablas

tabla.setEnabled (true): Permite que la tabla se active para ser modificada en tiempo de ejecución. tabla.setShowHorizontalLines (true): Permite colocar líneas horizontales a la tabla tabla.setRowSelectionAllowed (true): Permite seleccionar los registros de la tabla tabla.setColumnSelectionAllowed (true): Permite la selección de los campos de la tabla tabla.setSelectionForeground ( Color.white ): Permite establecer un color de selección dtm.addRow(newRow): Agrega registros a la tabla

5.3. Consultas sobre las tablas

Una de las mayores utilidades de las tablas es el empleo para consultas sobre bases de datos. A continuación se especifica un segmento de un programa que consulta información de una base de datos y las listas sobre la tabla de Java.

Tecnológico de Antioquia Institución Universitaria

Vicerrectoría Académica

87

Page 92: Lenguajes III

Tecnológico de Antioquia Institución Universitaria

Vicerrectoría Académica

A continuación se anexa el programa completo de manejo de Tablas en Java, que permite consultar información sobre una base de datos en ACCESS. Tabla1.java (Insertar el CD y buscar el material de apoyo)

88

Page 93: Lenguajes III

Bibliografía

Bibliografía

1. Lima Díaz Felipe. JAVA 2, Madrid. Editorial Anaya Multimedia. 2000 2. NAUGHTON Patrick, SCHILDT Herbert. JAVA Manual de Referencia. Madrid. McGraw Hill.

2000

Page 94: Lenguajes III

Cibergrafía

Cibergrafía

La Biblia de JAVA 2. Obtenido http://www.todoprogramas.com/programa/librolabibliadejava2