Java Tutorial
airprincess30 de Julio de 2012
15.771 Palabras (64 Páginas)431 Visitas
Java y Bases de Datos (Oracle).
Una síntesis.
Sergio Gálvez Rojas
Miguel Ángel Mora Mata
JAVA Y BASES DE DATOS (ORACLE). UNA SÍNTESIS.
EDICIÓN ELECTRÓNICA
AUTOR: SERGIO GÁLVEZ ROJAS
MIGUEL ÁNGEL MORA MATA
ILUSTRACIÓN
DE PORTADA: MIGUEL ÁNGEL MORA MATA
Sun, el logotipo de Sun, Sun Microsystems y Java son marcas o marcas registradas de Sun Microsystems Inc. en los EE.UU. y otros países.
Oracle es una marca registrada y Oracle9i/Oracle10g son marcas comerciales o marcas registradas de Oracle Corporation
Depósito Legal: MA 125-2010
I.S.B.N.: 978-84-693-0176-0
Java y Bases de Datos (Oracle)
Una síntesis
Sergio Gálvez Rojas
Doctor Ingeniero en Informática
Miguel Ángel Mora Mata
Ingeniero en Informática
Dpto. de Lenguajes y Ciencias de la Computación
E.T.S. de Ingeniería Informática
Universidad de Málaga
Java y Bases de Datos (Oracle).
Una síntesis.
Índice
Capítulo 1:
Introducción.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
Procedimientos almacenados. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
JDBC. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
SQLJ. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
BC4J.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
JDeveloper. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
Capítulo 2:
Procedimientos almacenados
en Java. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
Ejemplo. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
loadjava. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
Consideraciones sobre loadjava.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
Publicación.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
Correspondencia entre tipos.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
Tipos de parámetros.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
Creación de Tipos en Oracle. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
Otras invocaciones. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
Capítulo 3:
Java Database Connectivity.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
Cómo acceder a una base de datos.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
Drivers JDBC de Oracle. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
Ejemplo preliminar. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
JDBC 2.0. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
JDBC 3.0 y 4.0.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
Importación de paquetes y Carga del driver.. . . . . . . . . . . . . . . . . . . . . . . . . . 27
Conexión a la base de datos. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
Consulta a la base de datos. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
Procesamiento del ResultSet. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
Cierres. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
Sentencias preparadas. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
Ejemplo de sentencia preparada.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
Acceso a la base de datos en procedimientos almacenados.. . . . . . . . . . . . . . . . . . . . 34
Acceso a proc. almacenados. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
Ejemplo de llamada a DBMS_OUTPUT.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
Procesamiento básico de transacciones. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
Gestión de ResultSet. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
ResultSet con scroll. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
ResultSet actualizable. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
Metadatos de ResultSet. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
Metadatos de la base de datos. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
Gestión de Large Objects.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
Procesamiento batch. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
JDBC 4.0. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
Anotaciones. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
La interfaz BaseQuery. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
Claves automáticas.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
La interfaz DataSet.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
Recorrido de excepciones SQL. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
El tipo RowId.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
Capítulo 4:
SQLJ. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
Ejecución de un fichero SQLJ. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
Declaraciones SQLJ.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
Establecimiento de la conexión. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
Establecimiento de la conexión. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
Primer programa. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
SELECT con resultado simple.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
SELECT con resultado múltiple. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
Iteradores scrollable.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68
Ejemplo de iteradores scrollable. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69
Ejemplo con scrollable anónimo. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70
Sensibilidad y Control de transacciones. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
DDL y DML.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72
Cursores anidados. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74
Procedimientos PL/SQL. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76
SQLJ dentro de procedimientos PL/SQL.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77
VARRAY.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78
Consultas a VARRAY. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80
Inserción en VARRAY. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81
Capítulo 5:
JDeveloper. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82
Instalación de versiones antiguas. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83
Ejecución. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84
Filosofía estructural. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85
Ejecución
...