Programación de aplicaciones con jdbc

Solo disponible en BuenasTareas
  • Páginas : 6 (1402 palabras )
  • Descarga(s) : 0
  • Publicado : 9 de enero de 2012
Leer documento completo
Vista previa del texto
Tema 2. Programación de Aplicaciones de Acceso a Bases de Datos

1/29

Tema 2. Programación de aplicaciones de acceso a datos g p
2.1. SQL empotrado 2.2. API’s de acceso a bases de datos 2.3. Herramientas 4GL de desarrollo de aplicaciones cliente/servidor 2.4. Bases de datos y la web

I.T. Informática de Gestión

Bases de Datos II

Juan Ruiz de Miras

2.1. SQL Empotrado
• • Permiteel acceso SQL a bases de datos desde lenguajes de alto nivel Lenguaje anfitrión: C, Cobol, Fortram, ...
– Sentencias SQL: cuando se necesita el acceso a datos – Sentencias lenguaje anfitrión: resto de procesamiento

2/29

Programa fuente: sentencias lenguaje anfitrión + sentencias SQL
Precompilador d l P il d del DBMS

sentencias lenguaje anfitrión + llamadas a librerías (en lenguajeanfitrión) de acceso al DBMS
Compilador del lenguaje anfitrión

Programa ejecutable P j t bl
I.T. Informática de Gestión Bases de Datos II Juan Ruiz de Miras

2.1. SQL Empotrado
• Inserción de SQL en lenguaje anfitrión:
– Sentencias SQL: EXEC SQL sentencia_sql END EXEC SQL INCLUDE :nombre_variable

3/29

– Área de comunicación: – Variables anfitrión en SQL:

I.T. Informática de GestiónBases de Datos II

Juan Ruiz de Miras

2.1. SQL Empotrado
• Ejemplo SQL Oracle empotrado en C (PRO*C)
#include #include EXEC SQL BEGIN DECLARE SECTION; char v_dni[10]; char v_puesto[4]; float v_sueldo; EXEC SQL END DECLARATION; EXEC SQL INCLUDE SQLCA; void error() { EXEC SQL WHEN EVEN ERROR CONTINUE; printf(“Error de Oracle %s”,sqlca.sqlerrm); EXEC SQL ROLLBACK; exit(1); }

4/29(continua ...) )

I.T. Informática de Gestión

Bases de Datos II

Juan Ruiz de Miras

2.1. SQL Empotrado
• Ejemplo SQL Oracle empotrado en C (PRO*C)
void main() { EXEC SQL WHENEVER SQLERROR DO error(); EXEC SQL CONNECT “g305” IDENTIFIED BY “mipass”; printf(“Conectado \n”); for(;;) f ( ) { printf(“Introduce el DNI”); gets(v_dni); if (v_dni=“”) { EXEC SQL COMMIT; exit(0); } Q EXEC SQLEXECUTE BEGIN SELECT puesto,sueldo INTO :v_puesto,:v_sueldo FROM mecanico WHERE dni=:v_dni; END_EXEC; printf(“Puesto: %s, sueldo: %s”,v_puesto,v_sueldo); } }

5/29

I.T. Informática de Gestión

Bases de Datos II

Juan Ruiz de Miras

2.2. API’s de Acceso a Bases de Datos
• • • Librerías de funciones para acceso a bases de datos específicas (librerías nativas) Librerías de funciones paraacceso homogéneo a diferentes bases de datos Características comunes a todas las librerías:
– – – – – Conexión y desconexión del DBMS Preparación del comando (verificación sintaxis SQL) Ejecución del comando Control de errores Iteración sobre resultados de consultas

6/29

I.T. Informática de Gestión

Bases de Datos II

Juan Ruiz de Miras

2.2. API’s de Acceso a Bases de Datos
• ODBC(Open Data Base Connectivity) y JDBC (Java Data Base Connectivity)

7/29

Aplicación + ODBC/JDBC API

ODBC/JDBC Driver Manager ODBC/JDBC SQL Server Driver ODBC/JDBC Oracle Driver ODBC/JDBC DB2 Driver

DBMS SQL Server

DBMS Oracle

DBMS DB2

I.T. Informática de Gestión

Bases de Datos II

Juan Ruiz de Miras

2.2. API’s de Acceso a Bases de Datos
• Ejemplo de JDBC
importjava.sql; public class ejemplo_jdbc { string url=“jdbc:oracle:@cosmos:sid1”; strig consulta=“SELECT puesto,sueldo FROM mecanico”; t i lt “SELECT t ld i ” class.forName(“sun.oracle.jdbc.driver.OracleDriver”); /* carga el driver */ Connection con=DriverManager.getConnection(url,”g305”,”mipass”); /* conexión */ con=DriverManager getConnection(url g305 mipass ); Statement sent=con.createStatement(); /*creación de una sentencia */ ResultSet rs=sent.executeQuery(consulta); /* ejecución de la consulta */ while (rs.next()) { /* obtención de las tuplas */ System.out.println(rs.getString(“puesto”)); System.out.println(rs.getFloat(“sueldo”)); } }

8/29

I.T. Informática de Gestión

Bases de Datos II

Juan Ruiz de Miras

2.3. Herramientas 4GL de Desarrollo de Aplicaciones
• 4GL: Lenguajes de...
tracking img