1060
Capítulo 25 Acceso a bases de datos con JDBC
Figura 25.24
| Formatos populares de URL de base de datos.
En las líneas 30 y 31 de la fi gura 25.23 se crea un objeto
Connection
(paquete
java.sql
), el cual es refe-
renciado mediante
conexion
. Un objeto que implementa a la interfaz
Connection
administra la conexión entre
el programa de Java y la base de datos. Los objetos
Connection
permiten a los programas crear instrucciones de
SQL para manipular bases de datos. El programa inicializa a
conexion
con el resultado de una llamada al método
staticgetConnection
de la clase
DriverManager
(paquete
java.sql
), el cual trata de conectarse a la base de
datos especifi cada mediante su URL. El método
getConnection
recibe tres argumentos: un objeto
String
que
especifi ca el URL de la base de datos, un objeto
String
que especifi ca el nombre de usuario y un objeto
String
que especifi ca la contraseña. El nombre de usuario y la contraseña se establecen en la sección 25.6. Si utilizó un
nombre de usuario y contraseña distintos, necesita reemplazar el nombre de usuario (segundo argumento) y la
contraseña (tercer argumento) que se pasan al método
getConnection
en la línea 31. El URL localiza la base de
datos (posiblemente en una red o en el sistema de archivos local de la computadora). El URL
jdbc:mysql://
localhost/libros
especifi ca el protocolo para la comunicación (
jdbc
), el
subprotocolo
para la comunicación
(
mysql
) y la ubicación de la base de datos (
//localhost/libros
, en donde
localhost
es el host que ejecuta el
servidor MySQL y
libros
es el nombre de la base de datos). El subprotocolo
mysql
indica que el programa utili-
za un subprotocolo específi co de MySQL para conectarse a la base de datos MySQL. Si el objeto
DriverManager
no se puede conectar a la base de datos, el método
getConnection
lanza una excepción
SQLException
(paquete
java.sql
). En la fi gura 25.24 se enlistan los nombres de los controladores de JDBC y los formatos de URL de
base de datos de varios RDBMSs populares.
Observación de ingeniería de software 25.5
La mayoría de los sistemas de administración de bases de datos requieren que el usuario inicie sesión para poder
administrar el contenido de la base de datos. El método
getConnection
de
DriverManager
está sobrecargado con
versiones que permiten al programa proporcionar el nombre de usuario y la contraseña para obtener acceso.
En la línea 34 se invoca el método
createStatement
de
Connection
para obtener un objeto que implemen-
te a la interfaz
Statement
(paquete
java.sql
). El programa utiliza al objeto
Statement
para enviar instrucciones
de SQL a la base de datos.
En las líneas 37 y 38 se utiliza el método
executeQuery
del objeto
Statement
para enviar una consulta que
seleccione toda la información sobre los autores en la tabla
autores
. Este método devuelve un objeto que imple-
menta a la interfaz
ResultSet
, y contiene el resultado de esta consulta. Los métodos de
ResultSet
permiten al
programa manipular el resultado de la consulta.
En las líneas 41 a 54 se procesa el objeto
ResultSet
. En la línea 41 se obtienen los metadatos para el objeto
ResultSet
en forma de un objeto
ResultSetMetaData
(paquete
java.sql
). Los
metadatos
describen el con-
tenido del objeto
ResultSet
. Los programas pueden usar metadatos mediante la programación, para obtener
información acerca de los nombres y tipos de las columnas del objeto
ResultSet
. En la línea 42 se utiliza el méto-
do
ResultSetMetaData
de
getColumnCount
para obtener el número de columnas para el objeto
ResultSet
. En
las líneas 45 y 46 se anexan los nombres de las columnas.
RDBMS
Formato de URL de base de datos
MySQL
jdbc:mysql
:
//nombrehost:numeroPuerto/nombreBaseDatos
ORACLE
jdbc:oracle:thin
:@
nombrehost:numeroPuerto:nombreBaseDatos
DB2
jdbc:db2
:
nombrehost:numeroPuerto/nombreBaseDatos
Java DB/Apache
Derby
jdbc:derby
:
nombreBaseDatos (incrustado)
jdbc:derby
:
//nombrehost:numeroPuerto/nombreBaseDatos (red)
Microsoft SQL
Server
jdbc:sqlserver
:
//nombrehost.numeroPuerto;nombreBaseDatos=nombreBaseDatos
Sybase
jdbc:sybase:
Tds:
nombrehost:numeroPuerto/nombreBaseDatos
25_MAQ_CAP_25_DEITEL.indd1060
4/19/081:35:49AM