Post on 18-Dec-2014
Universidad Católica Los Ángeles de Chimbote – Programación Visual II
CONEXIÓN A LA BASE DE DATOS CON JDBC
¿Qué es un 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 cálculo, 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
Ing. Martín Salcedo Quiñones Página 1
Universidad Católica Los Ángeles de Chimbote – Programación Visual IIimportar qué software de administración o manejo de base de datos se utilice para
controlarlo.
Para la gente del mundo Windows, JDBC es para Java lo que ODBC es para
Windows. Windows en general no sabe nada acerca de las bases de datos, pero
define el estándar ODBC consistente en un conjunto de primitivas que cualquier
driver o fuente ODBC debe ser capaz de entender y manipular. Los
programadores que a su vez deseen escribir programas para manejar bases de
datos genéricas en Windows utilizan las llamadas ODBC.
Con JDBC ocurre exactamente lo mismo: JDBC es una especificación de un
conjunto de clases y métodos de operación que permiten a cualquier programa
Java acceder a sistemas de bases de datos de forma homogénea. Lógicamente,
al igual que ODBC, la aplicación de Java debe tener acceso a un driver JDBC
adecuado. Este driver es el que implementa la funcionalidad de todas las clases
de acceso a datos y proporciona la comunicación entre el API JDBC y la base de
datos real.
ODBC es un interfaz escrito en lenguaje C, que al no ser un lenguaje portable,
haría que las aplicaciones Java también perdiesen la portabilidad. Y además,
ODBC tiene el inconveniente de que se ha de instalar manualmente en cada
máquina; al contrario que los drivers JDBC, que al estar escritos en Java son
automáticamente instalables, portables y seguros. La conectividad de bases de
datos de Java se basa en sentencias SQL, por lo que se hace imprescindible un
conocimiento adecuado de SQL para realizar cualquier clase de operación de
bases de datos. Aunque, afortunadamente, casi todos los entornos de desarrollo
Java ofrecen componentes visuales que proporcionan una funcionalidad
suficientemente potente sin necesidad de que sea necesario utilizar SQL, aunque
para usar directamente el JDK se haga imprescindible
Ing. Martín Salcedo Quiñones Página 2
Universidad Católica Los Ángeles de Chimbote – Programación Visual IIAcceso a base de datos con JDBC
A continuación vemos los modelos diferentes de acceso a base de datos:
Modelo de 2 capas
El presente modelo se basa en que la conexión se presenta entre la aplicación
Java o el applet (que se ejecuta en el navegador), se conectan directamente a la
base de datos.
Como sabemos en Java se puede tener dos tipos de aplicaciones: la aplicación
Java propiamente dico y una aplicación applet, esta última que se ejecuta en un
navegador. Observamos en la figura que el driver o controlador JDBC debe residir
en la computadora local. La base de datos puede estar en cualquier otra máquina
y se accede a ella mediante la red. Esta es la configuración de típica
Cliente/Servidor: el programa cliente envía instrucciones SQL a la base de datos,
ésta las procesa y envía los resultados de vuelta a la aplicación
Modelo de 3 capas
El presente modelo, las instrucciones son enviadas a una capa intermedia entre
Cliente y Servidor, que es la que se encarga de enviar las sentencias SQL a la
base de datos y recoger el resultado desde la base de datos. En este caso el
usuario no tiene contacto directo, ni a través de la red, con la máquina donde
reside la base de datos.Ing. Martín Salcedo Quiñones Página 3
Universidad Católica Los Ángeles de Chimbote – Programación Visual II
Comparando con el modelo anterior, se observa que el driver o controlador JDBC
se encuentra junto al servidor de aplicaciones, esto hace que la máquina del
cliente no se preocupe por instalar el controlador. El nivel intermedio mantiene en
todo momento el control del tipo de operaciones que se realizan contra la base de
datos
Cargar el controlador JDBC
Para trabajar con el API JDBC se tiene que importar el paquete java.sql, tal y
como se indica a continuación:
import java.sql.*;
En este paquete se definen los objetos que proporcionan toda la funcionalidad que
se requiere para el acceso a bases de datos. El siguiente paso después de
importar el paquete java.sql consiste en cargar el controlador JDBC, es decir un
objeto Driver específico para una base de datos que define cómo se ejecutan las
instrucciones para esa base de datos en particular.
Hay varias formas de hacerlo, pero la más sencilla es utilizar el método forName() de la clase Class: Ing. Martín Salcedo Quiñones Página 4
Universidad Católica Los Ángeles de Chimbote – Programación Visual IIClass.forName("Controlador JDBC");
para el caso particular del controlador para MySQL, Connector/J, se tiene lo
siguiente:
Class.forName("com.mysql.jdbc.Driver");
Debe tenerse en cuenta que el método estático forName() definido por la clase
Class genera un objeto de la clase especificada. Cualquier controlador JDBC tiene
que incluir una parte de iniciación estática que se ejecuta cuando se carga la
clase. En cuanto el cargador de clases carga dicha clase, se ejecuta la iniciación
estática, que pasa a registrarse como un controlador JDBC en el DriverManager.
En toda aplicación de bases de datos con MySQL es indispensable poder
establecer la conexión al servidor para posteriormente enviarle las consultas. Los
programas en Java no son la excepción. El siguiente código nos servirá para
verificar que podemos establecer una conexión a nuestra base de datos
transportes import java.sql.*;public class TestConnection{
static String bd=”transportes”;static String login=”bingo”;static String password=”hola”;static String url=”jdbc:mysql://localhost/”+bd;
public static void mian(String[ ] args)throws IOException{
Connection conn = null;try{Class.forName(“com.mysql.jdbc.Driver);conn = DriverManager.getConnection(url,login,password);if (conn != null){System.out.println(“Conexión a la base de datos ”+bd+”... OK”);conn.close();}}catch(SQLException ex){System.out.println(ex);}catch(ClassNotFoundException ex)Ing. Martín Salcedo Quiñones Página 5
Universidad Católica Los Ángeles de Chimbote – Programación Visual II{System.out.println(ex);}
}}
En esta programación se inicia importanto el paquete sql perteneciente a java. El
signo del asterisco significa que el programa puede hacer uso de culaquier clase
contenida en el paquete sql. Se construye la clase TextConnection, estableciendo
4 variables o atributos de tipo String donde se almacena el nombre de la base de
datos, el login, la contraseña o password y el url.
Una vez en el método principal llamado main se declara la variable objeto conn y a
través de la instrucción try se busca proteger la ejecución ante posibles errores (lo
que se denomina manejo de excepciones).
Con la instrucción: Class.forName(“com.mysql.jdbc.Driver).newInstance();, se
establece el driver para el gestor de base de datos MySql. Luego en la siguiente
línea de programación se establece la conexión con la base de datos a través del
método getConnection perteneciente a la clase DriverManager. A través de la
sentencia selectiva if se evalúa el éxito de la conexión, por lo tanto, si la variable
conn es diferente de null significa que se logró la conexión, caso contrario se
mostrará mensajes de error, gracias a la instrucción catch.
Conector a la base de datos
Una aplicación en Java para que logre comunicarse con una base de datos
usando la API
Ing. Martín Salcedo Quiñones Página 6
Universidad Católica Los Ángeles de Chimbote – Programación Visual IIJDBC, se requiere de un conector. Ese conector es específico para el manejador
de base de datos y viene en la forma de un archivo “.jar” o “.zip”. El conector para
la base de datos MySQL, está en el archivo:
mysql-connector-java-5.0.XX.jar
Existe versiones superiores como la versión 5.0 para dicho conector. NetBeans
nos permite la tarea de conectar una aplicación a una base de datos
Conexión de una Aplicación a una base de datos creada en MySql
Para conectar a una aplicación a una base de datos, se requiere:
1. Agregarle a NetBeans el conector como una biblioteca o librería. Esto permite
que el conector esté disponible para los proyectos.
2. Agregarle a un proyecto el conector. Esto permite que la aplicación se pueda
conectar a la base de datos.
A continuación procedemos agregarle a NetBeans un conector a una base de
datos MySql:
a. Seleccione la opción Herramientas/Bibliotecas de la barra de menú del entorno
de NetBeans.
Ing. Martín Salcedo Quiñones Página 7
Universidad Católica Los Ángeles de Chimbote – Programación Visual II
b. Se visualiza un cuadro de diálogo que permite administrar las librerías o
bibliotecas de NetBeans. En la ventana, al lado izquierdo se observa las
librerías agregadas a NetBeans. Del lado derecho aparece el nombre de la
biblioteca y la trayectoria del archivo con la biblioteca. Para agregar el conector
a MySQL a NetBeans presione el botón de comando Biblioteca Nueva ...
Ing. Martín Salcedo Quiñones Página 8
Universidad Católica Los Ángeles de Chimbote – Programación Visual II
c. Se mostrará un cuadro de diálogo donde se establecerá el nombre que
daremos al conector, como por ejemplo MySQL y luego damos click en el
botón de comando Aceptar.
d. Se cierra el cuadro de diálogo y volvemos a la ventana anterior donde se
observará la nueva librería MySQL. Posteriormente procedemos a dar clic en
el botón de comando Agregar archivo JAR/Carpeta ...
Ing. Martín Salcedo Quiñones Página 9
Universidad Católica Los Ángeles de Chimbote – Programación Visual II
e. Buscamos el conector mysql-connector-java-5.0.7- bin.jar
Ing. Martín Salcedo Quiñones Página 10
Universidad Católica Los Ángeles de Chimbote – Programación Visual IIf. Al dar clic en Agregar archivo JAR / Carpeta volvemos a la ventana anterior.
Cabe señalar que en las últimas versiones de NetBeans ya existe una librería o
biblioteca para la conexión a una base de datos de MySql, denominada Driver
MySQL JDBC.
Damos click en el botón de comando Aceptar y vamos a crear un proyecto:
1. Seleccionamos la opción Archivo/Nuevo Proyecto de la barra de menú del
entorno de NetBeans.
Ing. Martín Salcedo Quiñones Página 11
Universidad Católica Los Ángeles de Chimbote – Programación Visual II
2. Seleccionamos en Categorías: Java y como proyecto: Aplicación Java. Luego
damos click en el botón de comando Siguiente.
3. Luego indicamos como nombre del proyecto universidad y posteriormente
damos clic en el botón de comando Terminar, quedando el entorno de
NetBeans de la siguiente manera:
Ing. Martín Salcedo Quiñones Página 12
Universidad Católica Los Ángeles de Chimbote – Programación Visual II
4. En Bibliotecas lo seleccionamos y damos clic con el botón de derecho y
elegimos la opción Agregar Biblioteca
5. Aparece un cuadro de diálogo para seleccionar la librería a agregar, en este
caso MySQL (en las últimas versiones de NetBeans tenemos el conector
Driver MySQL JDBC) y damos clic en Agregar Biblioteca
Ing. Martín Salcedo Quiñones Página 13
Universidad Católica Los Ángeles de Chimbote – Programación Visual II
6. Volvemos al entorno de NetBeans y se observa la nueva librería agregada
7. Ahora procedemos a la conexión de una base de datos, que en este caso será
la base de datos transportes, la misma que ya se encuentra creada
Ing. Martín Salcedo Quiñones Página 14
Universidad Católica Los Ángeles de Chimbote – Programación Visual IIconjuntamente con las tablas de Ciudad y Ruta. Seleccionamos la pestaña
Prestaciones y en Base de Datos seleccionamos la carpeta Controladores.
8. Para agregar el conector MySQL, haga clic en el botón derecho del mouse en
el nodo o carpeta Controladores y seleccione la opción Nuevo Controlador
9. Aparecerá el cuadro de diálogo para agregar un conector. Dar clic en el botón
de comando Agregar.
Ing. Martín Salcedo Quiñones Página 15
Universidad Católica Los Ángeles de Chimbote – Programación Visual II
10.Navegar hasta encontrar el conector, seleccionado y dando clic en Abrir.
11.En el cuadro de diálogo para agregar el conector se mostrará la información
del conector seleccionado. Luego dar clic en el botón de comando Aceptar.
Ing. Martín Salcedo Quiñones Página 16
Universidad Católica Los Ángeles de Chimbote – Programación Visual II
12.Un nuevo nodo para el conector a MySql, aparecerá en la pestaña
Prestaciones
13.Ahora procederemos a conectarnos con la base de datos de universidad.
Seleccionamos el driver MySQL y damos clic botón derecho y elegimos la
opción Conecting using
Ing. Martín Salcedo Quiñones Página 17
Universidad Católica Los Ángeles de Chimbote – Programación Visual II
14.Se muestra un cuadro de diálogo para establecer el URL de la base de datos
usando el siguiente formato:
jdbc:mysql://servidor:puerto/baseDatos
donde servidor es la dirección IP (o nombre de dominio del servidor), en
caso que el servidor esté en la misma computadora que NetBeans utiliza el
nombre: localhost; puerto es el puerto empleado por el servidor. Si el
servidor utiliza el puerto predefinido, se puede omitir; baseDatos es la base
de datos a la que se desea conectar.
Ing. Martín Salcedo Quiñones Página 18
Universidad Católica Los Ángeles de Chimbote – Programación Visual II
15.Damos clic en el botón de comando OK. A continuación aparecerá una ventana
confirmando la conexión con la base de datos de universidad. Luego damos
clic en el botón de comando Aceptar
16.En el entorno de NetBeans se mostrará un nuevo nodo de conexión a la base
de datos.
Ing. Martín Salcedo Quiñones Página 19
Universidad Católica Los Ángeles de Chimbote – Programación Visual II
17.Si damos click en + respecto al nodo creado se visualizará la tabla existente en
la base de datos de universidad.
Ing. Martín Salcedo Quiñones Página 20