guia java y jdbc

24
JAVA Y ACCESO A BASE DE DATOS MYSQL CON JDBC L.I. PABLO GALEANA BAILEY SISTEMAS DE INFORMACION Página 1 UNIVERSIDAD DEL GOLFO DE MEXICO CAMPUS “MATIAS ROMERO OAXACA” MATERIA: SISTEMAS DE INFORMACION TEMA: JAVA Y ACCESO A BASE DE DATOS MYSQL CON JDBC PRACTICA 1 Y 2 CON TECNOLOGIA JAVA JDBC

Upload: pablo-galeana-bailey

Post on 13-Jun-2015

771 views

Category:

Education


3 download

DESCRIPTION

GUIA DE MYSQL Y CONEXION A BASE DE DATOS JAVA JDBC

TRANSCRIPT

Page 1: GUIA JAVA Y  JDBC

JAVA Y ACCESO A BASE DE DATOS MYSQL CON JDBC

L.I. PABLO GALEANA BAILEY SISTEMAS DE INFORMACION Página 1

UNIVERSIDAD DEL GOLFO DE MEXICO

CAMPUS “MATIAS ROMERO OAXACA”

MATERIA: SISTEMAS DE INFORMACION

TEMA:

JAVA Y ACCESO A BASE DE DATOS MYSQL CON JDBC

PRACTICA 1 Y 2 CON TECNOLOGIA JAVA JDBC

Page 2: GUIA JAVA Y  JDBC

JAVA Y ACCESO A BASE DE DATOS MYSQL CON JDBC

L.I. PABLO GALEANA BAILEY SISTEMAS DE INFORMACION Página 2

“Lo más importante en este mundo no es el lugar donde

estamos parados, sino la dirección en que nos movemos y

antes de exigir primero hay que aprender a dar…”

13 de Mayo de 2011

Objetivo:•Aprender a usar a IDE Netbeans básicamente y funciones principales para eldesarrollo de un sistema de información con Java•Construir conexiones con Banco de Dados Mysql e conectar a aplicaciónpara la manipulación de datos con CRUD1.•Vamos desenvolver una Aplicación simple, una Agenda de Contactos deAlumnos usando JAVA, en seguida, vamos desenvolver una interfaceGráfica y por ultimo un Banco de Dados Para conectar a través de una claseConexión desde línea de comandos y posteriormente con Aplicación coninterfaz gráfica.

CONEXIÓN A LA BASE DE DATOS CON JDBCLa 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

importar 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

1 TERMINO APLIACDO A MANTENIMIENTO DE DATOS Create=crear, Read=Leer o

consultar, Update=Modificar o actualizar y Delete=Borrar o Eliminar.

Page 3: GUIA JAVA Y  JDBC

JAVA Y ACCESO A BASE DE DATOS MYSQL CON JDBC

L.I. PABLO GALEANA BAILEY SISTEMAS DE INFORMACION Página 3

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.

Agregar el controlador JDBCPara 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

Page 4: GUIA JAVA Y  JDBC

JAVA Y ACCESO A BASE DE DATOS MYSQL CON JDBC

L.I. PABLO GALEANA BAILEY SISTEMAS DE INFORMACION Página 4

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:

Class.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

transportesimport 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)

Page 5: GUIA JAVA Y  JDBC

JAVA Y ACCESO A BASE DE DATOS MYSQL CON JDBC

L.I. PABLO GALEANA BAILEY SISTEMAS DE INFORMACION Página 5

{

System.out.println(“Conexión a la base de datos ”+bd+”... OK”);

conn.close();

} }

catch(SQLException ex)

{

System.out.println(ex);

}

catch(ClassNotFoundException ex)

{

System.out.println(ex);

} } }

En esta programación se inicia importando el paquete sql perteneciente a java. El

signo del asterisco significa que el programa puede hacer uso de cualquier 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.

El Conector de la base de datosUna aplicación en Java para que logre comunicarse con una base de datos

usando la API JDBC, se requiere de un conector. Ese conector es específico para

Page 6: GUIA JAVA Y  JDBC

JAVA Y ACCESO A BASE DE DATOS MYSQL CON JDBC

L.I. PABLO GALEANA BAILEY SISTEMAS DE INFORMACION Página 6

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.jarExiste 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 deuna Aplicación Java a una base de datos creada en MySql o cualquier otracomo Postgre, Firebird, Oracle, etc. Para esta primer parte de la practicarealizar la base de datos a la que se desea conectar en phpmyadmin:

Y su tabla correspondiente

La estructura y campos de la tabla es la siguiente:

El código sql seria como se muestra en la imagen (para que no quede dudas)

Page 7: GUIA JAVA Y  JDBC

JAVA Y ACCESO A BASE DE DATOS MYSQL CON JDBC

L.I. PABLO GALEANA BAILEY SISTEMAS DE INFORMACION Página 7

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.

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...

Page 8: GUIA JAVA Y  JDBC

JAVA Y ACCESO A BASE DE DATOS MYSQL CON JDBC

L.I. PABLO GALEANA BAILEY SISTEMAS DE INFORMACION Página 8

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...

e. Buscamos el conector mysql-connector-java-5.0.7- bin.jar

f. 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.

Punto de partida:Nota. Primero haremos la práctica de mantenimiento de datos con códigoJava y Mysql desde línea de comandos, es decir no tendrá interfaz grafica deusuario, esto se hará posteriormente para ir clarificando y detallando paso apaso todo lo necesario para la conexión a una base de datos.

Damos click en el botón de comando Aceptar y vamos a crear un proyecto:

El nombre del proyecto no importa lo que importa es respetar el nombre de las

clases, objetos, atributos, etc.

1. Seleccionamos la opción Archivo/Nuevo Proyecto de la barra de menú del

entorno de NetBeans.

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 JAVA_MYSQL y posteriormente

damos clic en el botón de comando Terminar, quedando el entorno de NetBeans

de la siguiente manera:

Page 9: GUIA JAVA Y  JDBC

JAVA Y ACCESO A BASE DE DATOS MYSQL CON JDBC

L.I. PABLO GALEANA BAILEY SISTEMAS DE INFORMACION Página 9

3.1.- Creamos un paquete llamado java_mysql (dentro de este paquete irán todas

las clases necesarias para esta guía práctica) y la clase principal main que

contendrá el siguiente código:

Page 10: GUIA JAVA Y  JDBC

JAVA Y ACCESO A BASE DE DATOS MYSQL CON JDBC

L.I. PABLO GALEANA BAILEY SISTEMAS DE INFORMACION Página 10

3.2.- Creamos la clase necesaria para la conexión con la base de datos y su

codigo es el siguiente:

3.3.- Realizamos la prueba de conexión compilando el archivo main.java, tal como

se muestra en la imagen:

El resultado deberá ser el siguiente:

Page 11: GUIA JAVA Y  JDBC

JAVA Y ACCESO A BASE DE DATOS MYSQL CON JDBC

L.I. PABLO GALEANA BAILEY SISTEMAS DE INFORMACION Página 11

Si le marca algún error que es lo más seguro, piense y trate de deducir porque no

realiza la conexión.

Bien la respuesta es sencilla: Falta cargar el driver de mysql, recuerde quetodo esto se explico en la parte teórica al inicio de este tutorial de práctica,para resolver este inconveniente pasamos a los pasos siguientes.

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 DriverMySQL JDBC) y damos clic en Agregar Biblioteca.

Page 12: GUIA JAVA Y  JDBC

JAVA Y ACCESO A BASE DE DATOS MYSQL CON JDBC

L.I. PABLO GALEANA BAILEY SISTEMAS DE INFORMACION Página 12

6. Volvemos al entorno de NetBeans y se observa la nueva librería agregada.

Con estos pasos realizados ya podrá usted probar nuevamente la conexión a la

base de datos y no debe marcar error a acepción de que haya escrito mal algún

para metro de la base de datos tales como el nombre de la base de datos, la url, el

usuario o password si es que su motor de base de datos cuenta con dicho

candado.

7. Ahora procederemos a conectarnos con la base de datos de alumnosdb.

Seleccionamos el driver MySQL y damos clic botón derecho y elegimos la opción

Conecting using.

Page 13: GUIA JAVA Y  JDBC

JAVA Y ACCESO A BASE DE DATOS MYSQL CON JDBC

L.I. PABLO GALEANA BAILEY SISTEMAS DE INFORMACION Página 13

8. 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.

9. Damos clic en el botón de comando OK o Aceptar. A continuación aparecerá

una ventana confirmando la conexión con la base de datos de nuestra aplicación.

Luego damos clic en el botón de comando Aceptar.

Page 14: GUIA JAVA Y  JDBC

JAVA Y ACCESO A BASE DE DATOS MYSQL CON JDBC

L.I. PABLO GALEANA BAILEY SISTEMAS DE INFORMACION Página 14

13. En el entorno de NetBeans se mostrará un nuevo nodo de conexión a la base

de datos.

14.- Dar click en la opción Mostrar datos y deberá aparecer una pantalla como la

mostrada en la figura:

14.1.- Si ejecutamos la consulta nos mostrará los datos contenidos en la tabla que

estemos manipulando.

Page 15: GUIA JAVA Y  JDBC

JAVA Y ACCESO A BASE DE DATOS MYSQL CON JDBC

L.I. PABLO GALEANA BAILEY SISTEMAS DE INFORMACION Página 15

14.2.- Podemos seguir añadiendo mas datos desde esta intefaz para ello siga los

pasos mostrados en la imagen:

14.3.- Desmarcar la opción de idalum una vez que haya rellenado los campos

necesarios, para poder ingresar datos recuerde que auto-incremental y eso lo

deberá rellenar mysql en automático de lo contrario le marcara error de inserción .

14.4.- Una vez rellenado los campos dar click en la opción de aceptar puede

agregar varios datos a la vez y después volverá consultar para verificar si se

puede conectar.

Page 16: GUIA JAVA Y  JDBC

JAVA Y ACCESO A BASE DE DATOS MYSQL CON JDBC

L.I. PABLO GALEANA BAILEY SISTEMAS DE INFORMACION Página 16

15.- Ahora procederemos a realizar el código necesario para manipular la base de

datos desde código Java con acciones CRUD.

Crear una clase llamada MisContactos.java y agregar los atributos de la clase y

crear los métodos get y set como se indica.

Page 17: GUIA JAVA Y  JDBC

JAVA Y ACCESO A BASE DE DATOS MYSQL CON JDBC

L.I. PABLO GALEANA BAILEY SISTEMAS DE INFORMACION Página 17

15.1.- Crear el código necesario para la manipulación de la base de datos

separando la lógica de mantenimiento de datos en una clase llama

ContactoDatos.java, la cual contiene el código para altas, bajas, cambios,

consulta.

El código es el siguiente:

Page 18: GUIA JAVA Y  JDBC

JAVA Y ACCESO A BASE DE DATOS MYSQL CON JDBC

L.I. PABLO GALEANA BAILEY SISTEMAS DE INFORMACION Página 18

Page 19: GUIA JAVA Y  JDBC

JAVA Y ACCESO A BASE DE DATOS MYSQL CON JDBC

L.I. PABLO GALEANA BAILEY SISTEMAS DE INFORMACION Página 19

15.2.- Crear el código necesario para la inserción de datos con Java y probar

Ejecutar el código y ver resultados

Page 20: GUIA JAVA Y  JDBC

JAVA Y ACCESO A BASE DE DATOS MYSQL CON JDBC

L.I. PABLO GALEANA BAILEY SISTEMAS DE INFORMACION Página 20

Por cada compilación es un nuevo dato, cambie los datos y vuelva compilar y

verificar los resultados.

15.3.- Ahora realizamos el código para modificar datos

En la línea 6 pasamos como parámetro en Long.valueOf(4), el número de registro

que deseamos modificar. Compilamos y verificamos resultados.

Page 21: GUIA JAVA Y  JDBC

JAVA Y ACCESO A BASE DE DATOS MYSQL CON JDBC

L.I. PABLO GALEANA BAILEY SISTEMAS DE INFORMACION Página 21

15.3.- Ahora realizamos el código para consultar los datos creamos la clase

ConsultarRegistros.java

Compilamos y verificamos resultados.

Page 22: GUIA JAVA Y  JDBC

JAVA Y ACCESO A BASE DE DATOS MYSQL CON JDBC

L.I. PABLO GALEANA BAILEY SISTEMAS DE INFORMACION Página 22

15.4.- Ahora realizamos el código para eliminar los datos creamos la clase

EliminaDato.java

En la línea 6 pasamos como parámetro en Long.valueOf(2), el número de registro

que deseamos eliminar. Compilamos y verificamos resultados.

Anexos:

A continuación presentamos otro códigos para la conexión con una base de datos:

Page 23: GUIA JAVA Y  JDBC

JAVA Y ACCESO A BASE DE DATOS MYSQL CON JDBC

L.I. PABLO GALEANA BAILEY SISTEMAS DE INFORMACION Página 23

Tarea 1:

Del siguiente código que se proporciona:

Page 24: GUIA JAVA Y  JDBC

JAVA Y ACCESO A BASE DE DATOS MYSQL CON JDBC

L.I. PABLO GALEANA BAILEY SISTEMAS DE INFORMACION Página 24

Modificar el código para que debajo de cada encabezado visualice la información

correspondiente de acuerdo a los datos consultados.

Tarea 2: De la siguiente tabla y base de datos realizar el mantenimiento CRUD

de datos correspondientes, tal como se explico en este apartado del tutorial,

recuerde que la clave que se utilizo fue numérico auto-incremental y en esta

práctica será un varchar como campo llave deberá realizar las modificaciones

necesarias para el correcto funcionamiento de la aplicación.

Nota. Deberán enviar a mi correo sus códigos y reportes de los resultadosobtenidos, pueden resolverlo por equipo de tres integrantes.La siguiente guía será como implementar interfaz grafica a la aplicación quese desarrollo en este tutorial.

Fecha de entrega: viernes 20 de mayo de 2011.

Saludos y buena vida