tema 5 conexion base datos jdbc netbeans

20
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

Upload: omarzinho-burgos-palacios

Post on 18-Dec-2014

207 views

Category:

Documents


3 download

TRANSCRIPT

Page 1: Tema 5 Conexion Base Datos JDBC NetBeans

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

Page 2: Tema 5 Conexion Base Datos JDBC NetBeans

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

Page 3: Tema 5 Conexion Base Datos JDBC NetBeans

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

Page 4: Tema 5 Conexion Base Datos JDBC NetBeans

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

Page 5: Tema 5 Conexion Base Datos JDBC NetBeans

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

Page 6: Tema 5 Conexion Base Datos JDBC NetBeans

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

Page 7: Tema 5 Conexion Base Datos JDBC NetBeans

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

Page 8: Tema 5 Conexion Base Datos JDBC NetBeans

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

Page 9: Tema 5 Conexion Base Datos JDBC NetBeans

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

Page 10: Tema 5 Conexion Base Datos JDBC NetBeans

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

Page 11: Tema 5 Conexion Base Datos JDBC NetBeans

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

Page 12: Tema 5 Conexion Base Datos JDBC NetBeans

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

Page 13: Tema 5 Conexion Base Datos JDBC NetBeans

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

Page 14: Tema 5 Conexion Base Datos JDBC NetBeans

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

Page 15: Tema 5 Conexion Base Datos JDBC NetBeans

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

Page 16: Tema 5 Conexion Base Datos JDBC NetBeans

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

Page 17: Tema 5 Conexion Base Datos JDBC NetBeans

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

Page 18: Tema 5 Conexion Base Datos JDBC NetBeans

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

Page 19: Tema 5 Conexion Base Datos JDBC NetBeans

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

Page 20: Tema 5 Conexion Base Datos JDBC NetBeans

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