Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Almacenamiento de
Datos
CONTENIDO
1. Archivos, flujos y serializacin
1.1 Archivos de texto
1.2 Clases de la API de Java de Archivo
1.3 Flujos de archivos
1.4 Flujos de objetos
1.4.1 Serializacin (almacenar)
import java.io.*;
public class ArchivoTexto {
public static void main(String args[]) {
try {
// escritura de datos
PrintWriter salida = new PrintWriter( new BufferedWriter(new
FileWriter("prueba.txt")));
salida.println(12345");
salida.println(Juan Perez");
salida.close();
// lectura de datos
BufferedReader entrada =new BufferedReader(new
FileReader("prueba.txt"));
String s, s2 = new String();
while((s = entrada.readLine())!= null)
s2 = s2 + s + "\n";
System.out.println(Cadenas leidas:" + "\n" + s2);
entrada.close();
} catch (java.io.IOException e) { } } }
Clase RandomAccessFile
Los archivos de acceso aleatorio se caracterizan porque
es posible mover el apuntador de archivo a cualquier
posicin dentro del mismo y efectuar operaciones de
escritura y lectura a la vez.
La forma general de construccin es:
RandomAccessFile archivo = new
RandomAccessFile(String nombre, String modo);
RandomAccessFile archivo = new
RandomAccessFile(File obj, String modo);
**modo: read/write
Flujos de archivos
Flujos de objetos
Serializacin es el proceso de transferir los bytes
correspondientes a un objeto a travs de un flujo.
Este proceso garantiza que el objeto se transmite
completamente (de all su nombre).
Un objeto Java serializable es uno cuya clase
implementa la interface Serializable.
Serializable no posee mtodos, solo indica a la
mquina virtual que ese objeto puede transmitirse
por un flujo.
Serializacin
Flujos
Clase ObjectOuputStream
Mtodo - writeObject()
Ejemplo: flujoSalida.writeObjetct (objetoClase);
Clase ObjectInputStream
Mtodo - readObject()
Ejemplo: objetoClase = (Clase) flujoEntrada.readObject();
Serializacin
Cualquier clase que desee poder serializar sus objetos
debe implementar el interfaz Serializable.
Serializacin
Las clases que necesiten algn tratamiento especial en
la Serializacion deben implementar estos dos mtodos:
private void writeObject (java.io.ObjectOutputStream
salida) throws IOException
private void readObject (java.io.ObjectInputStream
entrada) throws IOException, classNotFoundException;
Dato
Los datos pueden ser de diferentes tipos:
Texto: secuencias de caracteres.
Numrico: cantidades (con o sin parte decimal).
Autonumrico: numrico sin parte decimal
automtico.
Fecha/Hora: para momentos histricos.
Moneda: cantidades monetarias.
Si/No: valores lgicos.
Y otros tipos.
TABLA
Es una estructura de datos que contiene informacin
comn, organizados en filas y columnas.
El contenido de la tabla debe describir o definir
completamente la entidad para la que fue diseada la
tabla.
Representa a un tipo de objetos de la vida real, como
pueden ser Empleados, Clientes, etc.
Tabla: Persona
Campos y Registro
Campo: es un solo dato, en una tabla los campos
representan las columnas. Ejemplo: nombre de cada
persona nombre
Registro, es todo conjunto de campos relacionados con
un solo objeto de la tabla, en sta un registro representa
una fila. Ejemplo: la persona con el cdigo per=2
Antonio Garca del departamento nmero 2.
Un registro contiene los datos de la misma persona.
Un campo contiene datos del mismo tipo.
nombre
carnet
registro
Tabla: socio
Tabla: libro
Tabla:
prestamo
Lenguaje SQL
Contenido
Llaves(Primaria y fornea)
SQL
Componentes
Comandos
Operadores
Instrucciones
SELECT
INSERT
DELETE
UPDATE
Funciones de agregado
Comandos
Clusulas
Operadores
Funciones de agregado
Operadores de SQL
Lgicos:
AND
OR
NOT
Operadores de Comparacin
Operador
Uso
<
Menor que
>
Mayor que
<>
Distinto de
<=
>=
Igual que
BETWEEN
LIKE
IN
Comando SELECT
Una consulta SQL selecciona filas y
columnas de una o ms tablas en una base de
datos.
Forma bsica:
SELECT * FROM nombreDeTabla
El smbolo * es un comodn indica que deben
recuperarse todas las columnas de la tabla
nombreDeTabla.
Nombre
1.
2.
3.
4.
5.
Perez
Garca
Cabrera
Lpez
Gmez
La clusula WHERE
En la mayora de los casos es necesario localizar, en
una base de datos, filas que cumplan con ciertos
criterios de seleccin (formalmente llamados
predicados).
SQL utiliza la clusula WHERE en una consulta
SELECT para especificar los criterios de seleccin para
la consulta.
La forma bsica es:
SELECT nombreDeColumna1, nombreDeColumna2, ...
FROM nombreDeTabla
WHERE criterios
Clusula ORDER BY
El resultado de una consulta puede ordenarse a partir
de una columna, en forma ascendente o descendente,
mediante el uso de la clusula ORDER BY (opcional).
La forma bsica para ordenar ascendentemente es:
SELECT nombreDeColumna1, nombreDeColumna2, ...
FROM nombreDeTabla
ORDER BY columna ASC
Clusula ORDER BY
La forma bsica para ordenar en forma descendente es:
SELECT nombreDeColumna1, nombreDeColumna2, ...
FROM nombreDeTabla
ORDER BY columna DESC
Ejemplo:
SELECT idAutor, nombrePila, apellidoPaterno
FROM autores
ORDER BY apellidoPaterno ASC
Ejercicios
Con los datos del ejemplo anterior:
Escriba la instruccin SQL que muestre el
nombre de las empresas que pagan
mensualmente.
Escriba la instruccin SQL que muestre el
nmero de la planilla, la fecha de pago y el total,
de las planillas de la empresa ACME, y que las
ordene por fecha (de la ms reciente a las ms
antigua).
Comando INSERT
Sintaxis de Sql :
INSERT INTO NombreTabla VALUES (Valor1, Valor2, Valor3)
Comando DELETE
Sintaxis de delete:
DELETE FROM nombre_tabla
WHERE condicin
Ejemplo:
DELETE FROM s_depto
WHERE id=15
Comando UPDATE
Sintaxis:
UPDATE NombreTabla
SET capto1=valor1
UPDATE
Otra Sintaxis:
UPDATE nombre_tabla
SET campo1 = valor1
WHERE condicin
Ejemplo:
UPDATE s_depto
SET nombre = G. INFORMA
WHERE id_depto = 20
Nota: Esta actualizacin se aplica a la fila con el id
nmero 20.
Descripcin
AVG
COUNT
SUM
MAX
MIN
Ejercicios
En la tabla Alumno con los siguientes campos y datos:
carne
EL12001
nombres
Samuel
apellidos
fechaNac
edad
carrera
Estrada Arias
10-01-1994
18
Ingeniera Elctrica
AH11011 Juan
Arias Herrera
23-03-1991
21
Ingeniera Qumica
PL09123
Prez Lpez
15-10-1990
22
Ingeniera Qumica
NP10010 Josefa
Navas Prez
03-11-1995
17
Ingeniera Elctrica
LL10005
Lara Lpez
11-07-1990
22
Ingeniera Qumica
EF09025 Elena
Estrada Flores
21-05-1991
21
Ingeniera Elctrica
LE12225
Len Estrada
14-01-1995
17
Ingeniera Elctrica
HA11215 Luis
Heredia Alas
21-12-1994
18
Ingeniera Qumica
LP09013
Lpez Prez
07-08-1993
19
Ingeniera Elctrica
Mara
Jos
Miguel
Ana
Ejercicios
Hacer las siguientes consultas.
1. Mostrar carne, apellidos, edad de los alumnos que tengan
ms de 21 aos.
2. Contar el numero de alumnos que tienen nombre que
comienza con J.
3. Mostrar carne, nombre y apellidos de los alumnos ordenados
por apellidos.
4. Insertar 2 alumnos mas, y luego encontrar el promedio de la
edad.
5. Borrar al alumno que tiene el carne EL12001
6. Mostrar los nombres y apellidos de los alumnos cuya edad
sea entre 18 y 22 aos.
Respuestas
1. SELECT carne, apellidos, edad
FROM Alumno
WHERE edad >21;
2. SELECT count( carne )
FROM Alumno
WHERE nombres LIKE 'J%';
3. SELECT carne, nombres, apellidos
FROM Alumno
ORDER BY apellidos
Respuestas
4. INSERT INTO Alumno (carne, nombres,
apellidos, fechaNac, edad, carrera) VALUES (AL06002,
Carlos Efrain, Avalos Lpez, 15-05-1988, 24, Ingeniera
Industrial);
INSERT INTO Alumno VALUES (ZM10001, Guadalupe,
Zamora Martinez, 17-08-1987, 25, Arquitectura);
SELECT avg( edad )
FROM Alumno;
5. DELETE FROM Alumno WHERE carne = EL12001;
6. SELECT nombres, apellidos FROM Alumno WHERE edad
BETWEEN 18 AND 22;
o tambin
SELECT nombres, apellidos FROM Alumno
WHERE edad IN ( 18, 19, 20, 21, 22 )
2.6 ODBC
ODBC (Open DataBase Connectivity)
Conectividad Abierta a Bases de Datos es
una interfaz de programacin que habilita
a las aplicaciones para acceder datos en
Sistemas Gestores de Bases de Datos que
usan el Lenguaje Estructurado de
Consulta (SQL) como estndar de acceso
a datos.
ODBC
Funcin del ODBC
Transforman la sintaxis SQL de ODBC en la
sintaxis aceptada por la fuente de datos.
De esta forma se puede acceder a
diferentes fuentes de datos cargando un
driver correspondiente a la fuente de datos.
Gracias a ODBC, podemos conectarnos a
servidores de bases de datos reales como
DB/2, SQL Server, Oracle, Informix, etc.
Introduccin
JDBC (Java DataBase Connectivity), es un API
de Java que permite al programador ejecutar
instrucciones en lenguaje estndar de acceso a
Bases de Datos SQL (Structured Query
Language), un lenguaje para crear, examinar,
manipular y gestionar Bases de datos
relacionales.
Para que una aplicacin pueda hacer
operaciones en una Base de datos, ha de tener
una conexin con ella, que se establece a travs
de un driver, que convierte el lenguaje de alto
nivel a sentencias de Bases de datos.
Introduccin
Es decir, las tres acciones principales que realizar
JDBC son las de:
1. establecer la conexin a una base de datos, ya sea
remota o no;
2. enviar sentencias SQL a esta base de datos y,
3. en tercer lugar, procesar los resultados obtenidos de
la base de datos.
Los programas de Java se comunican con las bases de
datos y manipulan sus datos utilizando la API JDBC.
Un controlador JDBC implementa la interfaz para una
base de datos especfica.
Conectividad JDBC
JDBC especifica una serie de clases y mtodos para
permitir a cualquier programa Java una forma
homognea de acceso a sistemas de bases de
datos.
Este acceso se realiza a travs de drivers, que son
los que implementan la funcionalidad especificada
en JDBC. Esto es semejante a lo que ofrece ODBC.
La necesidad de JDBC, a pesar de la existencia de
ODBC, viene dada porque ODBC es una interfaz
escrita en lenguaje C, que al no ser un lenguaje
portable, hara que las aplicaciones Java tambin
perdiesen la portabilidad.
Conectividad JDBC
Adems, ODBC tiene el inconveniente de que se ha de
instalar manualmente en cada mquina; al contrario de
los drivers JDBC, que al estar escritos en Java son
automticamente instalables, portables y seguros.
La conectividad de bases de datos se basa en
sentencias SQL, que a travs de JDBC, permiten
realizar la conexin a la base de datos, realizar
consultas y recibir los resultados.
JDBC permite ciertas facilidades, como realizar la
actualizacin de mltiples registros con un solo
comando o acceder a mltiples servidores de bases
de datos dentro de una transaccin simple.
Conectividad JDBC
TIPO DE DRIVERS
Puente JDBC-ODBC
Ventaja :
Java dispone de acceso inmediato a todas las fuentes
posibles de bases de datos y no hay que hacer
ninguna configuracin adicional aparte de la ya
existente.
Puente JDBC-ODBC
Java/Binario
try {
sentencia.executeUpdate("DROP TABLE IF
EXISTS DATOSPERSONALES");
} // try interno
catch(SQLException e) {
informacion.setText("Error al Borrar la tabla");
System.out.println(e);
} // catch interno
Ejemplo
Abrir en Netbeans una aplicacin de base de
datos.
Notar que el driver JDBC de PostgreSQL est en
la librera de la aplicacin.
Aplicacin en ejecucin
Despliegue de
datos de la base
de datos
Modificaciones aparecen
en el despliegue de las
filas en la Tabla.
La conexin a
la base de datos
es cerrada al
cerrar la aplicacin.