qu� es el jdbc?
la conectividad de la base de datos de java (jdbc , java database connectivity) es
un marco de programaci�n para los desarrolladores de java que escriben los
programas que tienen acceso a la informaci�n guardada en bases de datos, hojas de
calculo, y archivos "planos". jdbc se utiliza com�nmente para conectar un programa
del usuario con una base de datos por �detr�s de la escena�, sin importar qu�
software de administraci�n o manejo de base de datos se utilice para controlarlo.
de esta manera, jdbc es una plataforma-cruzada [1]. este art�culo proporcionar� un
c�digo de introducci�n que demuestra el acceso a la base de datos de los programas
de java que utilizan las clases jdbc api, que est� disponible para la
transferencia directa libre del sitio de sun� [3 ].
una base de datos que conecta con otros programas se llama fuente de datos. muchas
fuentes de datos, incluyendo los productos producidos por microsoft y oracle,
utilizan ya un est�ndar llamado conectividad abierta de la base de datos� (odbc,
open database connectivity). mucho de la herencia en la programaci�n en c y de los
programas del perl utilizan odbc para conectar con las fuentes de datos. el odbc
consolid� mucha de la concordancia entre los sistemas de administraci�n de base de
datos. las structuras de jdbc est�n construidos en esta caracter�stica, e
incrementa el nivel de abstracci�n. los puentes de jdbc-odbc se han creado para
permitir que los programas de java conecten con el software compatible odbc de la
base de datos [1].
este art�culo asume que los lectores ya tienen una fuente de datos establecida y
est�n moderadamente familiarizados con el lenguaje de interrogaci�n estructurado o
m�s conocido como sql, structured query language, la lengua de mando para agregar,
extraer datos o expedientes, asi como otras manipulaciones b�sicas de la base de
datos. vea la gu�a sql de hoffman si usted es un principiante o necesite repasar
conceptos importantes. [2].
mientras usted se maneja con las plataformas m�s populares en base de datos (tales
como oracle, informix, microsoft, mysql, etc.), hay un programa piloto de jdbc
escrito que permite que los programas puedan conectarse y manipular los datos.
usted puede descargar un programa piloto espec�fico de jdbc del fabricante de su
sistema de administraci�n de base de datos (dbms) o de terceros (en la caja de los
productos abiertos menos populares) [5]. el programa piloto de jdbc para su base
de datos vendr� con instrucciones espec�ficas de hacer los archivos del tipo class
del programa piloto disponible para la jvm o m�quina virtual de java, que va a
hacer funcionar su programa. los programas pilotos de jdbc utilizan el built-in de
java drivermanager para abrir y tener acceso a una base de datos dentro de su
programa de java.
para comenzar a conectar con una fuente de datos, usted primero necesita al
instante, un objeto de su programa piloto de jdbc. esto esencialmente requiere una
sola l�nea de c�digo, un comando al drivermanager ordenando que la m�quina virtual
de java cargue el bytecode de su programa piloto en la memoria, donde sus m�todos
estar�n disponibles para su programa. el par�metro o string abajo es el nombre
calificado de la clase del programa piloto que usted est� utilizando para su
combinaci�n de plataformas:
class.forname("org.gjt.mm.mysql.driver").newinstance();
conectando con su base de datos
para manipular realmente su base de datos, usted necesita conseguir un objeto
connection class de su programa piloto. por lo menos, su programa piloto
necesitar� un url para la base de datos y los par�metros para el control de
acceso, que generalmente implica la autentificaci�n del password o clave est�ndar
en una cuenta de la base de datos.
http://www.vusports.com/index.html
el url para nuestro programa piloto y para la base de datos se parece a esto:
jdbc:mysql://db_server:3306/contacts/
aunque ambos url lucen diferente, ellos est�n realmente de la misma forma: el
protocolo para la conexi�n, el nombre del computador principal de la m�quina y el
n�mero del puerto opcional, y la ruta de direcci�n del archivo. su programa piloto
de jdbc vendr� con las instrucciones que detallan c�mo formar el url para su base
de datos. parecer� similar al ejemplo anterior dado.
usted querr� controlar el acceso a sus datos, a menos que la seguridad no sea un
problema. el minimo com�n denominador est�ndar para la autentificaci�n a una base
de datos es un par de cadenas, una cuenta y un password. el nombre y el password
de la cuenta que usted da al programa piloto debieran tener significado dentro de
su dbms, donde los permisos establecidos para controlar los privilegios de acceso.
nuestro ejemplo del programa piloto del jdbc utiliza el objeto properties class
para pasar la informaci�n con drivermanager , el cual rinde como un objeto
connection:
estado de la estructuraci�n
las bases de datos se componen de tablas, de las cuales se componen de filas.
cada tabla de la base de datos tiene un conjunto de las filas que definen qu�
tipos de datos est�n en cada registro. los registros tambi�n se guardan como filas
de la tabla de una base de datos con una fila por registro. utilizamos la conexi�n
de la fuente de datos creada en la ultima secci�n para ejecutar un comando a la
base de datos.
escribimos comandos que van a ser ejecutados por el dbms de base de datos usando
el sql. el sintaxis del estado del sql, o de la indagaci�n, consiste en la acci�n
de una palabra clave, de un nombre del objetivo de la tabla, y algunos par�metros.
por ejemplo:
para ejecutar el estado del sql usando el objeto connection, primero usted
necesita crear el objeto estado, que ejecutar� la indagaci�n (query) contenida en
una palabra clave.
en este caso, examinamos un archivo muy simple del texto. hay solamente algunas
filas y columnas, pero el principio aqu� es el mismo cuando se trata de aplicar y
escalar a problemas m�s grandes. hay solamente pocos pasos:
import java.io.*;
import java.sql.*;
import java.util.*;
// connect to db
properties props = new properties();
props.setproperty("user", account);
props.setproperty("password", password);
class.forname(driver).newinstance();
connection con = drivermanager.getconnection(
host + db, props);
statement stmt = con.createstatement();
catch( exception e) {
e.printstacktrace();
}
}
t�tulo
hysteria
while(answers.next()) {
string name = answers.getstring("name");
int number = answers.getint("number");
// do something interesting
}
todos las tablas de la base de datos tienen meta datos que describen los nombres y
los tipos de datos de cada columna; los conjuntos de resultados son la misma
manera. usted puede utilizar resultsetmetadata class para conseguir los numeros y
los nombres de las columnas, como aqui:
en este caso, vamos a preguntar por una tabla de la base de datos con todos sus
registros, y visualizamos el conjunto de resultados fijado a la l�nea de comando.
podr�amos tambi�n crear un gr�fico hecho con los componentes del java swing.
note que no sabemos nada, excepto el url y informaci�n de autentificaci�n de la
tabla de la base de datos que vamos a visualizar. todo esta determinado por los
resultset y sus meta datos.
los comentarios en el c�digo explican las acciones del programa. aqu� est� el
c�digo del programa del ejemplo:
import java.sql.*;
import java.util.*;
// authentication properties
properties props = new properties();
props.setproperty("user", account);
props.setproperty("password", password);
le animo a que copie el c�digo en este art�culo en su propio computador. con este
art�culo y documentaci�n para otro programa piloto de jdbc, usted est� en su
camino de crear programas de fuentes de datos conducida por java. experimente con
este c�digo, y ad�ptelo para conectar las fuentes de datos disponibles para usted.
referencias
1 computerworld. java database connectivity por carol sliwa --
http://www.computerworld.com/cwi/story/0,1199,nav47-68-85-98_sto43545,00.html
last modified:
location: www.acm.org/crossroads/espanol/xrds7-3/ovp_marzo2001.html