PDF de programación - Introducción a la Conectividad de Bases de Datos con Java (JDBC)

Imágen de pdf Introducción a la Conectividad de Bases de Datos con Java (JDBC)

Introducción a la Conectividad de Bases de Datos con Java (JDBC)gráfica de visualizaciones

Publicado el 23 de Junio del 2019
1.711 visualizaciones desde el 23 de Junio del 2019
1,1 MB
29 paginas
Creado hace 12a (31/05/2011)
Bases de Datos

Introducción a la Conectividad de
Bases de Datos con Java (JDBC)
Bases de Datos con Java (JDBC)

Pedro Corcuera

Dpto. Matemática Aplicada y
Ciencias de la Computación
Universidad de Cantabria

[email protected]

Objetivo

• Presentar de forma básica JDBC

Bases de Datos

2

Indice

• ¿Qué es JDBC?

• Puente JDBC-ODBC

• Tipos de Controladores (drivers) de JDBC

• Pseudocódigo JDBC
• Pseudocódigo JDBC

• Ejemplo Java

• Metadatos

Bases de Datos

3

¿Qué es JDBC?

• JDBC es una interface que permite a un programa en
Java ejecutar instrucciones SQL dentro de bases de
datos relacionales
– las bases de datos deben seguir el estandar ANSI SQL-2

Bases de Datos

4

JDBC en acción

Programa

Java

JDBC

conectividad

utilidades proceso

de datos

driver

para Oracle

driver

para Sybase

jdbc-odbc

pruente

odbc
driver

Bases de Datos

5

El puente JDBC-ODBC

• ODBC (Open Database Connectivity) es un estandar

Microsoft de mediados de los 1990’s.

• Es una API que permite a programas C/C++ ejecutar

SQL dentro de bases de datos

• ODBC es soportado por muchos productos
• ODBC es soportado por muchos productos
• El puente JDBC-ODBC permite que programas Java

usen la interface C/C++ de ODBC
– significa que JDBC puede acceder muchas BBDD
• Las capas de conversión (Java --> C --> SQL)

pueden ralentizar la ejecución

Bases de Datos

6

El puente JDBC-ODBC

• El puente JDBC-ODBC viene gratis con el JDK:

– llamado sun.jdbc.odbc.JdbcOdbcDriver

• El driver ODBC driver para Microsoft Access viene

con MS Office
con MS Office
– por ello es fácil conectar Java y Access

Bases de Datos

7

Tipos de driver JDBC

• Puente JDBC-ODBC

– traslada Java al ODBC API

• API nativo

– traslada Java a la propia base de datos de la API

• Protocolo nativo
• Protocolo nativo

– utiliza Java para acceder a la base de datos de manera

más directa con sus protocolos de bajo nivel

• Protocolo de Red

– utiliza Java para acceder a la base de datos a través del

middleware de red (generalmente TCP / IP)

– necesarios para las aplicaciones en red

Bases de Datos

8

Pseudocódigo JDBC

• Todos los programas JDBC hacen lo siguiente:

– cargar el controlador JDBC
– especificar el nombre y la ubicación de la base de datos

que se utiliza

– Conectar a la base de datos con un objeto
– Conectar a la base de datos con un objeto

Connection

– Ejecutar una consulta SQL usando un objeto

Statement

– Obtener los resultados en un objeto ResultSet
– Terminar cerrando los objetos ResultSet,

Statement y Connection

Bases de Datos

9

Pseudocódigo JDBC - Diagrama

DriveManager

crea

Connection

crea

Statement

crea

ResultSet

SQL

datos

enlaza al
driver

Driver

SQL

datos

Bases de Datos

10

DriveManager

• Es responsable de establecer la conexión con la base

de datos a través del controlador

• Ejm.:

Class.forName(

"sun.jdbc.odbc.JdbcOdbcDriver");
"sun.jdbc.odbc.JdbcOdbcDriver");

Connection conn =

DriveManager.getConnection(url);

Bases de Datos

11

Nombre de la base de datos

• El nombre y la ubicación de la base de datos se

realiza mediante una URL
– los detalles de la dirección varían dependiendo del tipo de

base de datos que se está utilizando

jdbc:odbc:
jdbc:odbc:

//host.domain.com: 2048 /data/file
//host.domain.com: 2048 /data/file

Protocolo de
comunicación
• Ejm.:

Máquina que
contiene la BD

Puerto usado
para la conexión

Path de la BD
en la máquina

jdbc:odbc:Books

Bases de Datos

12

Objeto Statement

• El objeto Statement proporciona un 'espacio de
trabajo "donde las consultas SQL se pueden crear,
ejecutar, y recoger los resultados

• Ejm.:

Statement st =
Statement st =

ResultSet rs = st.executeQuery(

conn.createStatement() ;

″ select * from Authors ″ );
:

st.close();

Bases de Datos

13

Objeto ResultSet

• Almacena los resultados de una consulta SQL
• Un objeto ResultSet es similar a una ‘tabla’ de

respuestas que se puede examinar moviendo un
‘puntero’ (cursor)

• Operaciones Cursor:

– first(), last(), next(), previous(), etc.

• Typical code:

cursor

while( rs.next() ) {
// procesar la fila;
}

23

5

17

98

Juan

Marcos

Pablo

Pedro

Bases de Datos

14

Programa SimpleJDBC.java

// SimpleJDBC.java
// Muestra los nombre y apellidos
// de la tabla Autores en la BD Books

import java.sql.*;

public class SimpleJDBC {
public class SimpleJDBC {

public static void main(String[] args)

{


// La URL para la BD Books
// ’Protected' por un login y password
String url = "jdbc:odbc:Books";
String username = "anonymous";
String password = "guest";

:

Bases de Datos

15

Programa SimpleJDBC.java

try {// carga el drive JDBC-ODBC Bridge

Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");

// conecta con la db usando DriverManager

Connection conn=DriverManager.getConnection(url,

username, password );

// crea un objeto statement
Statement statement = conn.createStatement();
Statement statement = conn.createStatement
// Ejecuta la consulta SQL

ResultSet rs = statement.executeQuery(



"SELECT lastName, firstName FROM Authors" );

// imprime resultados
while( rs.next() )

System.out.println( rs.getString("lastName")+ ", "+

rs.getString("firstName") );

// Cierre

statement.close();conn.close();}

Bases de Datos

16

Programa SimpleJDBC.java

catch ( ClassNotFoundException cnfex ) {

System.err.println(

"Error en la carga del driver JDBC/ODBC");

cnfex.printStackTrace();
System.exit( 1 ); // termina el programa

}
}
catch ( SQLException sqlex ) {
System.err.println( sqlex );
sqlex.printStackTrace();

}

} // fin de main()

} // fin de la clase SimpleJDBC

Bases de Datos

17

Tablas de la BD Books

Bases de Datos

18

Username y Password de la BD

• El enlace de la base de datos con el exterior (por

ejemplo, su interfaz ODBC) debe configurarse para
tener un nombre de usuario y contraseña

• Para ello:

– En Panel de Control → "Herramientas administrativas"

hacer doble clic en "Orígenes de datos (ODBC)"

Bases de Datos

19

Username y Password de la BD

• El DSN de usuario es un
origen de datos específica del
usuario que se almacena
localmente y disponible sólo
localmente y disponible sólo
para el usuario
• El DSN de sistema es un
origen de datos visible para
todos los usuarios de un
equipo incluidos los servicios
NT

Bases de Datos

20

Username y Password de la BD

• Pulsar “Agregar” para añadir una fuente de datos y seleccionar
Microsoft Access Driver (*.mdb, *.accdb). Pulsar “Finalizar”.

Bases de Datos

21

Username y Password de la BD

• Escribir en Nombre del origen de datos y Descripción y pulsar en
“Seleccionar” para buscar el camino al fichero BD Books.accdb o
Books.mdb.
• Después pulsar en “Avanzadas”

Bases de Datos

22

Username y Password de la BD

• Escribir en Nombre de inicio de sesión
anonymous y en Contraseña guest
• Pulsar en “Aceptar”

Bases de Datos

23

Tipos de BD Access

• En Access 2007, el formato del fichero estandar de la

base de datos es ".accdb"
– usar Books.accdb si se tiene Access 2007 en el

ordenador

• En versiones anteriores de Access (p.e. Access

2003), el formato del fichero es ".mdb"
– usar Books.mdb se se tiene una versión anterior de

Access en el ordenador

Bases de Datos

24

Windows 7 y ODBC Access Driver

• En Panel de Control → “Sistema y Seguridad”→

“Herramientas administrativas”→ “Orígenes de datos
ODBC”

• También se puede usar "odbcad32.exe" que se

encuentra en:
encuentra en:
– C:\Windows\SysWOW64\

C:\Windows\System32
(para Windows 7, 64 bit) (para Windows 7, 32 bit)

• Si el driver no se encuentra en la versión de W7 se

puede descargar MDAC 2.8 de:

http://www.microsoft.com/downloads/en/details.aspx?FamilyID=78cac895-efc2-4f8e-a9e0-3a1afbd5922e

Bases de Datos

25

Acceso a ResultSet

• La clase ResultSet contiene muchos métodos

para el acceso al valor de una columna de un registro
en curso
– puede usar el nombre o posición de la columna
– p.e. para obtener el valor en la columna lastName :
– p.e. para obtener el valor en la columna lastName :

rs.getString("lastName")

• Los valores son datos SQL, y deben ser convertidos a

los tipos/objetos Java

• Hay varios métodos para acceder/convertir datos,

– p.e. getString(), getDate(), getInt(),

getFloat(), getObject()

Bases de Datos

26

MetaDatos

• Los metadatos es la información sobre la base de

datos:
– p.e. el número de columnas, los tipos de las columnas

– meta datos es la información del esquema

Nombre

Curso

Nota

meta data

ID

007

James Bond

Cocina

008 Mario Bross

Repostería

99

1

Bases de Datos

27

Acceso a MetaDatos

• El método getMetaData() se puede usar en un
objeto ResultSet para crear su objeto meta datos.

• p.e.

ResultSetMetaData md = rs.getMetaData();

:
:

int numCols = md.getColumnCount();
for (int i = 0; i <= numCols; i++) {

if (md.getColumnType(i) == Types.CHAR)

System.out.println(

md.getColumnName(i) )

}

Bases de Datos

28

Más métodos para acceso a MetaDatos

• getTableName()

• getPrecision()

– número de dígitos decimales en la columna

• isSigned()

– retorna true si la comuna tiene números con signo
– retorna true si la comuna tiene números con signo

• isCurrency(), etc.

Bases de Datos

29
  • Links de descarga
http://lwp-l.com/pdf16181

Comentarios de: Introducción a la Conectividad de Bases de Datos con Java (JDBC) (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios...
CerrarCerrar
CerrarCerrar
Cerrar

Tienes que ser un usuario registrado para poder insertar imágenes, archivos y/o videos.

Puedes registrarte o validarte desde aquí.

Codigo
Negrita
Subrayado
Tachado
Cursiva
Insertar enlace
Imagen externa
Emoticon
Tabular
Centrar
Titulo
Linea
Disminuir
Aumentar
Vista preliminar
sonreir
dientes
lengua
guiño
enfadado
confundido
llorar
avergonzado
sorprendido
triste
sol
estrella
jarra
camara
taza de cafe
email
beso
bombilla
amor
mal
bien
Es necesario revisar y aceptar las políticas de privacidad