Upload
pablo-galeana-bailey
View
771
Download
3
Tags:
Embed Size (px)
DESCRIPTION
GUIA DE MYSQL Y CONEXION A BASE DE DATOS JAVA JDBC
Citation preview
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
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.
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
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)
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
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)
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...
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:
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:
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:
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.
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.
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.
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.
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.
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.
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:
JAVA Y ACCESO A BASE DE DATOS MYSQL CON JDBC
L.I. PABLO GALEANA BAILEY SISTEMAS DE INFORMACION Página 18
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
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.
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.
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:
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:
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