UNIVERSIDAD DE PANAMÁ CENTRO REGIONAL DE VERAGUAS FACULTAD DE INFORMÁTICA, ELECTRÓNICA Y COMUNICACIONES LICENCIATURA EN INGENIERÍA EN INFORMÁTICA PROGRAMACIÓN III
PROYECTO SEMESTRAL Sobre: CONECTIVIDAD DE BASES DE DATOS EN JAVA
Presentado por: Carlos J. De Gracia R.
9-721-393
Facilitador: Profesor Diego Santimateo
II Año II Semestre
15 de diciembre de 2006
MySQL & Java _____________________________________________________________ INTRODUCCIÓN Las bases de datos son muy importantes. Sin ellas, los bancos, supermercados,
etcétera,
no
podrían
funcionar.
Además
de
muchas
aplicaciones actuales, las bases de datos pueden considerarse como el componente de software mas importante para los negocios. Actualmente, la mayoría de las bases de datos se definen como “relacionales”. Los datos se guardan en tablas que pueden estar relacionadas entre si. Casi todas las bases de datos pueden utilizarse en forma local, ya sea mediante comandos de menú o consultas escritas, en un lenguaje estándar conocido como SQL(Lenguaje de Consultas Estructurados o en ingles, Structured Query Language). En empresas mas extensas a menudo se cuenta con una base de datos central utilizada por un gran numero de personas, que por lo general son de distintos países y utilizan distintos tipos de computadoras. JDBC(Conectividad de Bases de Datos en Java , o en ingle, Java DataBase Connectivity) permiten que una aplicación o applet de Java se ejecute en un equipo de escritorio para enviar consultas de SQL a una base de datos que se encuentran en otro equipo. Después se regresan los resultados. El desarrollo de este proyecto hace énfasis en la investigación, análisis y experimentación de los conceptos ligados al tema de la conectividad de bases de datos en Java.
2 Programación III
MySQL & Java _____________________________________________________________ El contenido de este documento está estructurado de la siguiente forma: en una primera parte se presentará una adecuada fundamentacion teórica con respecto al tema de conectividad de bases de datos en Java. En un segundo punto, se presentará una breve, pero significante metodología de diseño del desarrollo de una base de datos. Como tercer punto, se presentará la estructuración de aplicación a desarrollar, así como la respectiva documentación que se vincula con el código del programa. Finalmente se presentarán las conclusiones y recomendaciones referentes al desarrollo del proyecto.
3 Programación III
MySQL & Java _____________________________________________________________ PROBLEMA PROPUESTO
4 Programación III
MySQL & Java _____________________________________________________________ FUNDAMENTACION TEÓRICA JDBC (Java Data Base Conectivity) es un API de Java para acceder a sistemas de bases de datos, y prácticamente a cualquier tipo de dato tabular. El API JDBC consiste de un conjunto de clases e interfaces que permiten a cualquier programa Java acceder a sistemas de bases de datos de forma homogénea. En otras palabras, con el API JDBC no es necesario escribir un programa para acceder a Sybase, otro programa para acceder a Oracle, y otro programa para acceder a MySQL; con esta API, se puede crear un sólo programa en Java que sea capaz de enviar sentencias SQL a la base de datos apropiada. Al igual que ODBC, la aplicación de Java debe tener acceso a un controlador ( driver ) JDBC adecuado. Este controlador 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. JDBC proporciona a los programadores de Java una interfaz de alto nivel y les evita el tener que tratar con detalles de bajo nivel para acceder a bases de datos. En el caso del manejador de bases de datos MySQL, Connector/J es el controlador JDBC oficial. El desarrollo de este informe cuenta con una detallada descripción de las clases y métodos que están involucrados en la conexión y consulta de una base de datos MySQL utilizando el lenguaje de programación Java. Este trabajo está organizado de la siguiente forma: en una primera parte se dará un repaso sobre el funcionamiento del paquete java.sql, asi como una detallada descripción de lo que contiene el paquete y como segunda parte se detallarán las clases contenidas en el paquete, asi como sus respectivos métodos. Para finalizar se plasman las conclusiones de este informe, asi como una pequeña referencia electrónica a sitios de mucho interés en el tema. 5 Programación III
MySQL & Java _____________________________________________________________ El paquete java.sql proporciona el API para tener acceso y procesar datos en una fuente de datos usando el lenguaje de programación Java. Este API incluye un marco por el que diversos controladores se puedan instalar dinámicamente para tener acceso a diversas fuentes de datos.
6 Programación III
MySQL & Java _____________________________________________________________ METODOLOGÍA DE DISEÑO DE BASE DE DATOS
DESCRIPCIÓN DEL PROBLEMA Crear una aplicación Java que a partir de archivos de textos, genere una
base de datos MySQL, que permita realizar consultas de las calificaciones de estudiantes, mediante la cedula, indicando el porcentaje de asignaturas fracasadas. La aplicación debe permitir la corrección de los detalles de una asignatura o de un determinado profesor. •
ESTABLECER IDENTIDADES Atendiendo a una serie de reglas generales que ayudan a determinar las
relaciones, entidades o clases de objetivos, implicados en la aplicación, podemos observar que dentro del dominio del problema se pueden establecer tres entidades principales.
-
ESTUDIANTES
-
ASIGNATURAS
-
PROFESORES
ESTUDIANTES
ASIGNATURAS
PROFESORES
0..n
•
impartir
0..1
DETERMINAR ASOCIACIONES Según los alcances de la aplicación, se determina que un profesor puede
tener varias asignaturas. Es aquí donde se crea la asociación entre entidades PROFESORES y ESTUDIANTES, ya que un profesor puede impartir varias asignaturas, pero una asignatura solo esta asignada a un solo profesor. Es con esto que conseguimos la cardinalidad, así mismo existe una asociación entre las entidades ESTUDIANTES y ASIGNATURAS. A la asociación se le 7 Programación III
MySQL & Java _____________________________________________________________ llamara recibir, ya que un estudiante puede recibir algunas asignaturas, pero una asignatura puede tener varios estudiantes. ESTUDIANTES
ASIGNATURAS
1...n
•
recibir
1...6
PROFESORES
1..n
1 impartir
DETERMINAR ATRIBUTOS Esta aplicación, se han pedido definir los siguientes atributos.
Código - asignatura para la entidad ESTUDIANTE.
Cedula para la entidad ESTUDIANTE.
Nota para la entidad ESTUDIANTE.
Código - curso para la entidad ASIGNATURA.
Código – asignatura para la entidad ASIGNATURA.
Abreviatura para la entidad ASIGNATURA.
Descripción para la entidad ASIGNATURA.
Código – profesor para la entidad PROFESOR.
Nombre para la entidad PROFESOR.
Apellido para la entidad PROFESOR.
8 Programación III
MySQL & Java _____________________________________________________________ ESTRUCTURACIÓN DEL PROGRAMA //CLASE PRINCIPAL QUE PERMITE REALIZAR LAS OPERACIONES //DE INSERCION, CONSULTA Y MODIFICACION class Principal { public static void main (String[] args) { //men obtiene el valor de la opcion seleccionada MenuOpciones men= new MenuOpciones(); InsertaDatosEnLaTabla agregar=new InsertaDatosEnLaTabla(); SeleccionaDatosDeTabla seleccion=new SeleccionaDatosDeTabla(); ActualizarDatos modificar=new ActualizarDatos(); int bandera=0; int opcion=0; while (bandera==0) { opcion=men.menuPrincipal(); switch (opcion) { case 1: //accede al metodo que permite //insertar los datos en la base de datos agregar.ingresarDatos(); break; case 2: //accede al metodo permite consultar //los datos de la tabla calificaciones seleccion.consultarCalificaciones(); break; case 3: //accede al metodo que permite modificar //datos de la tabla profesores modificar.actualizarProfesores(); break; case 4: //accede al metodo que permite //modificar los datos de asignatura modificar.actualizarAsignaturas(); break; case 5: 9 Programación III
MySQL & Java _____________________________________________________________ //bandera variable que termina //el ciclo de opciones bandera=1; break; } } } } import java.io.*; import java.sql.*; //clase que contien el menu de opciones public class MenuOpciones { CapturaeImpresion mensaje=new CapturaeImpresion(); String msg="****************Ingrese la Opcion**************** "; public int menuPrincipal() { int opcion=0; try { System.out.println("\n\n----------------------------------------------------"); System.out.println("*** UNIVERSIDAD DE PANAMA ***"); System.out.println("----------------------------------------------------"); System.out.println("(1). Ingresar datos "); System.out.println("(2).
Consulta de calificaciones
System.out.println("(3).
Actualizar datos del profesor
System.out.println("(4).
Actualizar datos de asignatura
System.out.println("(5).
Salir
"); "); "); "); System.out.println("----------------------------------------------------"); System.out.println("----------------------------------------------------"); opcion=Integer.parseInt(mensaje.obtenerdatos(msg)); 10 Programación III
MySQL & Java _____________________________________________________________ } catch (Exception e) { System.out.println("Error debe digitar una de las opciones"); } return opcion; } } import java.sql.*; //clase que permite crear las tablas en la base de datos public class CreaTabla { public static void main (String[] args) { Connection conn = null; try { //datos necesarios para la conexion String userName = "FIEC-02"; String password = "estudiante"; String url = "jdbc:mysql://serfiec:3306/prueba"; Class.forName ("com.mysql.jdbc.Driver").newInstance (); conn = DriverManager.getConnection (url, userName, password); System.out.println ("Coneccion Database OKKK!!!"); try { Statement s = conn.createStatement (); String tabla1,tabla2,tabla3; //sentencias para la creacion de tablas tabla1 ="CREATE TABLE cdprofesores(codigo_profesor char(10), nombre char(40), apellido char(40))"; tabla2 ="CREATE TABLE cdasignaturas(codigo_curso char(10), codigo_asignatura char(10), abreviatura char(10), descripcion varchar(40), codigo_profesor char(10))"; tabla3 ="CREATE TABLE cdestudiantes(codigo_asignatura char(10), cedula char(40), nota char(5))"; s.executeUpdate(tabla1); s.executeUpdate(tabla2); s.executeUpdate(tabla3); s.close (); 11 Programación III
MySQL & Java _____________________________________________________________ System.out.println ("\n Tablas Creadas"); } catch (Exception e) { System.err.println ("Problemas con Creacion de la Tabla\n"+e.toString()); } } catch (Exception e) { System.err.println ("No puede conectarse al Servidor Mysql"+e.toString()); } finally { if (conn != null) { try { conn.close (); System.out.println ("\n !!!!!Cerrada la coneccion a Mysql"); } catch (Exception e) { /* sin mensajes de error */ } } } } } import java.io.*; import java.util.*; import java.sql.*; //clase que permite insertar datos en la tabla class InsertaDatosEnLaTabla { public void ingresarDatos( ) { Connection conn = null; try { String userName = "FIEC-03"; String password = "fiecest"; String url = "jdbc:mysql://serfiec:3306/prueba"; Class.forName ("com.mysql.jdbc.Driver").newInstance (); 12 Programación III
MySQL & Java _____________________________________________________________ conn = DriverManager.getConnection (url, userName, password); System.out.println ("Coneccion Database OKKK!!!"); try { Statement s = conn.createStatement (); StringTokenizer token; FileReader datos=new FileReader("2006PRIMERO.txt"); BufferedReader entrada=new BufferedReader(datos); int i=0; String linea; do { String codigocurso=""; String codasig1=""; String codasig2=""; String nombreasig=""; String nombreprof=""; String codprof=""; String segundonombre=""; String primernombre=""; int flag=0; token=new StringTokenizer(linea=entrada.readLine()); while (token.hasMoreTokens()) { if (token.nextToken().equals("FACULTAD")) { token.nextToken(); token.nextToken(); if (token.nextToken().equals("ARQUITECTURA.")) { flag=1; } } } if (flag==1) { linea=entrada.readLine(); /*---------------------------------------------------------*/ 13 Programación III
MySQL & Java _____________________________________________________________ i=0; while (i<2) { token=new StringTokenizer(linea=entrada.readLine()); while (token.hasMoreTokens()) { token.nextToken(); //escuela-carrera } linea=entrada.readLine(); i++; } linea=entrada.readLine(); linea=entrada.readLine(); /*---------------------------------------------------------*/ i=0; while (i<2) { token=new StringTokenizer(linea=entrada.readLine()); if (i==0) { int j=0; while (token.hasMoreTokens()) { if (j==2) { codigocurso=token.nextToken(); } else //curso-asignatura { token.nextToken(); } j++; } linea=entrada.readLine(); } else 14 Programación III
MySQL & Java _____________________________________________________________ { int k=0; while (token.hasMoreTokens()) { if (k==0) { token.nextToken(); } else { if (k==1) { codasig1=token.nextToken(); } else { if (k==2) { codasig2=token.nextToken(); } else { nombreasig=nombreasig+token.nextToken()+" "; } } } k++; } linea=entrada.readLine(); } i++; } /*---------------------------------------------------------*/ linea=entrada.readLine(); 15 Programación III
MySQL & Java _____________________________________________________________ linea=entrada.readLine(); /*---------------------------------------------------------*/ int j=0; token=new StringTokenizer(linea=entrada.readLine()); while (token.hasMoreTokens()) { if (j==2) { codprof=token.nextToken(); //profesor } else { if ((j==3)||(j==4)) { nombreprof=nombreprof+token.nextToken()+" "; } else { token.nextToken(); } } j++; } token=new StringTokenizer(nombreprof," "); segundonombre=token.nextToken(); primernombre=token.nextToken(); /*---------------------------------------------------------*/ linea=entrada.readLine(); linea=entrada.readLine(); linea=entrada.readLine(); linea=entrada.readLine(); linea=entrada.readLine(); linea=entrada.readLine(); linea=entrada.readLine(); linea=entrada.readLine(); linea=entrada.readLine(); /*---------------------------------------------------------*/ 16 Programación III
MySQL & Java _____________________________________________________________ do { i=0; String cedula=""; String nota=""; token=new StringTokenizer(linea=entrada.readLine()); while (token.hasMoreTokens()) { if (i==0) { token.nextToken(); } else { if ((i==1)||(i==2)|| (i==3)||(i==4)) { if(i==4) { cedula=cedula+token.nextToken(); } else { cedula=cedula+token.nextToken()+"-"; } //cedula-notas } else { nota=token.nextToken(); } } i++; } //sentencia para la insercion de datos en la tabla String sql3="INSERT INTO cdestudiantes(codigo_asignatura, cedula, nota)"+"VALUES('"+codasig1+"','"+cedula+"','"+nota+"')"; s.executeUpdate(sql3); 17 Programación III
MySQL & Java _____________________________________________________________ }while(linea.equals("
18 Programación III
MySQL & Java _____________________________________________________________ ")==false); /*---------------------------------------------------------*/ //sentencia para la insercion de datos en la tabla String sql1="INSERT INTO cdasignaturas(codigo_curso, codigo_asignatura, abreviatura, descripcion, codigo_profesor)"+"VALUES ('"+codigocurso+"','"+codasig1+"','"+codasig2+"','"+nombreasig+"','"+codp rof+"')"; s.executeUpdate(sql1); //sentencia para la insercion de datos en la tabla String sql2="INSERT INTO cdprofesores(codigo_profesor, nombre, apellido)"+"VALUES ('"+codprof+"','"+primernombre+"','"+segundonombre+"')"; s.executeUpdate(sql2); }/*fin del if(flag==1)*/ i++; }while(i<55631); entrada.close(); datos.close(); s.close(); System.out.println("\nDatos Insertados"); } catch(Exception error) { System.err.println(error.toString()); } } catch (Exception e) { System.err.println ("No puede conectarse al Servidor Mysql"); } finally { if (conn != null) { try { conn.close (); System.out.println ("\n !!!!!Cerrada la coneccion a Mysql"); 19 Programación III
MySQL & Java _____________________________________________________________ } catch (Exception e) { /* sin mensajes de error */ } } } return; } } import javax.swing.*; import java.sql.*; //clase que permite consultar los datos de la base de datos public class SeleccionaDatosDeTabla { public void consultarCalificaciones() { CapturaeImpresion mensaje=new CapturaeImpresion(); String msg="Ingrese la Cédula que desea buscar: "; String ced=""; Connection conn = null; try { String userName = "FIEC-03"; String password = "fiecest"; String url = "jdbc:mysql://serfiec:3306/prueba"; Class.forName ("com.mysql.jdbc.Driver").newInstance (); conn = DriverManager.getConnection (url, userName, password); System.out.println ("Conexion Database OKKK!!!"); try { Statement s = conn.createStatement (); ced=mensaje.obtenerdatos(msg); //sentencia para la seleccion de datos de la tabla estudiantes String sql= "SELECT * FROM cdestudiantes where cedula= '"+ced+"'"; s.executeQuery(sql); ResultSet rs = s.getResultSet(); int count = 0; int frac=0; System.out.println("\n****************************"); System.out.println("LOS DATOS DE LA TABLA SON:"); 20 Programación III
MySQL & Java _____________________________________________________________ System.out.println("****************************"); while (rs.next ()) { System.out.println ("Asignatura= " + rs.getString ("codigo_asignatura") + "\tCedula = " + rs.getString ("cedula") + "\tNota = " + rs.getString ("nota")); if(rs.getString ("nota").equals("F")) { frac++; } ++count; } int total=frac/count; JOptionPane.showMessageDialog(null,"\nPORCENTAJE DE ASIGNATURAS FRACASADAS >>>>"+total+"%"); s.close (); System.out.println ("\n Fin Del Despliegue"); } catch (Exception e) { System.err.println ("Problemas con acceso a la tabla\n" + e); } } catch (Exception e) { System.err.println ("No puede conectarse al Servidor Mysql"+e.toString()); } finally { if (conn != null) { try { conn.close (); System.out.println ("\n !!!!!Cerrada la coneccion a Mysql"); } catch (Exception e) { /* sin mensajes de error */ } } } } } 21 Programación III
MySQL & Java _____________________________________________________________ import java.sql.*; //clase que permite actualizar datos de la base de datos class ActualizarDatos { //modifica los datos de la tabla profesores public void actualizarProfesores() { Connection conn = null; try { String userName = "FIEC-03"; String password = "fiecest"; String url = "jdbc:mysql://serfiec:3306/prueba"; Class.forName ("com.mysql.jdbc.Driver").newInstance (); conn = DriverManager.getConnection (url, userName, password); System.out.println ("Coneccion Database OKKK!!!"); CapturaeImpresion mensaje=new CapturaeImpresion(); int sw1=0; try { Statement s = conn.createStatement (); while(sw1==0) { String msg="Ingresar el codigo del profesor: "; String code=mensaje.obtenerdatos(msg); String sql= "SELECT * FROM cdprofesores where codigo_profesor= '"+code+"'"; s.executeQuery(sql); ResultSet rs = s.getResultSet(); int count = 0; System.out.println("\n****************************"); System.out.println("LOS DATOS DE LA TABLA SON:"); System.out.println("****************************"); while (rs.next ()) { 22 Programación III
MySQL & Java _____________________________________________________________ System.out.println ("Codigo= " + rs.getString ("codigo_profesor") + "\tNombre = " + rs.getString ("nombre") + "\tApellido = " + rs.getString ("apellido")); ++count; } rs=s.executeQuery(sql); if (!rs.next()) { System.out.println("Error Ingresando los datos :la cedula no existe"); } else { sw1=1; } if(sw1==1) { int sw=0; while(sw==0) { System.out.println("\n**Escoja el campo que desea actualizar**"); System.out.println("*************************************"); System.out.println("(1).
Codigo del profesor");
System.out.println("(2).
nombre");
System.out.println("(3).
apellido");
System.out.println("(4).
salir");
System.out.println("*************************************"); String msg2="Indique su opcion: "; int op=Integer.parseInt(mensaje.obtenerdatos(msg2)); if(op==1) { 23 Programación III
MySQL & Java _____________________________________________________________ String comodin1=mensaje.obtenerdatos("Ingrese el nuevo codigo del profesor"); String sql1= "UPDATE cdprofesores SET codigo_profesor ='"+comodin1+"' where codigo_profesor ='"+code+"'"; s.executeUpdate(sql1); System.out.println("LOS DATOS HAN SIDO ACTUALIZADO:"); } else { if (op==2) { String comodin2=mensaje.obtenerdatos("Ingrese el nuevo nombre"); String sql2= "UPDATE cdprofesores SET nombre ='"+comodin2+"' where codigo_profesor ='"+code+"'"; s.executeUpdate(sql2); System.out.println("LOS DATOS HAN SIDO ACTUALIZADO:"); } else { if(op==3) { String comodin3=mensaje.obtenerdatos("Ingrese el nuevo apellido"); String sql3= "UPDATE cdprofesores SET nombre ='"+comodin3+"' where codigo_profesor ='"+code+"'"; s.executeUpdate(sql3); System.out.println("LOS DATOS HAN SIDO ACTUALIZADO:"); } else { sw=1; } 24 Programación III
MySQL & Java _____________________________________________________________ }//else }//else }//while }//if }//while } catch(Exception e) { System.out.println("Error borrando los datos : "+e.toString()); } } catch(Exception error) { System.err.println ("No puede conectarse al Servidor Mysql"+error.toString()); } }// //modifica los datos de la tabla asignaturas public void actualizarAsignaturas() { Connection conn = null; try { String userName = "FIEC-03"; String password = "fiecest"; String url = "jdbc:mysql://serfiec:3306/prueba"; Class.forName ("com.mysql.jdbc.Driver").newInstance (); conn = DriverManager.getConnection (url, userName, password); System.out.println ("Coneccion Database OKKK!!!"); CapturaeImpresion mensaje=new CapturaeImpresion(); int sw1=0; try { Statement s = conn.createStatement (); while(sw1==0) { 25 Programación III
MySQL & Java _____________________________________________________________ String msg="Ingresar el codigo de asignatura "; String code=mensaje.obtenerdatos(msg); String sql= "SELECT * FROM cdasignaturas where codigo de asignatura= '"+code+"'"; s.executeQuery(sql); ResultSet rs = s.getResultSet(); int count = 0; System.out.println("\n****************************"); System.out.println("LOS DATOS DE LA TABLA SON:"); System.out.println("****************************"); while (rs.next ()) { System.out.println("Curso= " + rs.getString ("codigo_curso") + " Asig.= " + rs.getString ("codigo_asignatura") + " Abrev.= " + rs.getString ("abreviatura") + " Descr.= " + rs.getString ("descripcion") + " Profesor = " + rs.getString ("codigo_profesor")); ++count; } rs=s.executeQuery(sql); if (!rs.next()) { System.out.println("Error Ingresando los datos :la cedula no existe"); } else { sw1=1; } if(sw1==1) { int sw=0; while(sw==0) { System.out.println("\n**Escoja el campo que desea actualizar**"); 26 Programación III
MySQL & Java _____________________________________________________________ System.out.println("*************************************"); System.out.println("(1).
Curso");
System.out.println("(2).
Codigo de asignatura");
System.out.println("(3).
abreviatura");
System.out.println("(4).
descripcion");
System.out.println("(5).
codigo de profesor");
System.out.println("(6).
salir");
System.out.println("*************************************"); String msg2="Indique su opcion: "; int op=Integer.parseInt(mensaje.obtenerdatos(msg2)); if(op==1) { String comodin1=mensaje.obtenerdatos("Ingrese el nuevo codigo del curso"); //sentencias para actualizar los campos de la tabla asignaturas String sql1= "UPDATE cdasignaturas SET codigo_curso ='"+comodin1+"' where codigo_asignatura ='"+code+"'"; s.executeUpdate(sql1); System.out.println("LOS DATOS HAN SIDO ACTUALIZADO:"); } else { if (op==2) { String comodin2=mensaje.obtenerdatos("Ingrese el nuevo codigo de asignatura"); 27 Programación III
MySQL & Java _____________________________________________________________ //sentencias para actualizar los campos de la tabla asignaturas String sql2= "UPDATE cdasignaturas SET codigo_asignatura ='"+comodin2+"' where codigo_asignatura ='"+code+"'"; s.executeUpdate(sql2); System.out.println("LOS DATOS HAN SIDO ACTUALIZADO:"); } else { if(op==3) { String comodin3=mensaje.obtenerdatos("Ingrese la nueva abreviatura"); //sentencias para actualizar los campos de la tabla asignaturas String sql3= "UPDATE cdasignaturas SET abreviatura ='"+comodin3+"' where codigo_asignatura ='"+code+"'"; s.executeUpdate(sql3); System.out.println("LOS DATOS HAN SIDO ACTUALIZADO:"); } else { if(op==4) { String comodin4=mensaje.obtenerdatos("Ingrese la nueva descripcion"); //sentencias para actualizar los campos de la tabla asignaturas String sql3= "UPDATE cdasignaturas SET descripcion ='"+comodin4+"' where codigo_asignatura ='"+code+"'"; 28 Programación III
MySQL & Java _____________________________________________________________ s.executeUpdate(sql3); System.out.println("LOS DATOS HAN SIDO ACTUALIZADO:"); } else { sw=1; } } }//else }//else }//while }//if }//while } catch(Exception e) { System.out.println("Error borrando los datos : "+e.toString()); } } catch(Exception error) { System.err.println ("No puede conectarse al Servidor Mysql"+error.toString()); } }// }// import javax.swing.*; //clase que permite capturar datos y devolverlos class CapturaeImpresion { 29 Programación III
MySQL & Java _____________________________________________________________ //metodo que permite obtener datos public String obtenerdatos(String msg) { String ret; ret=JOptionPane.showInputDialog(null,"\n"+msg); return (ret); } //metodos que permiten devolver datos public void desplegardatos(String msg1) { JOptionPane.showMessageDialog(null,"\n"+msg1); } public void desplegardatos(String msg1,String dt1) { JOptionPane.showMessageDialog(null,"\n"+msg1+" "+dt1); } } import java.sql.*; //clase que permite eliminar las tablas public class EliminaTabla { public static void main (String[] args) { Connection conn = null; try { String userName = "FIEC-02"; String password = "estudiante"; String url = "jdbc:mysql://serfiec:3306/prueba"; Class.forName ("com.mysql.jdbc.Driver").newInstance (); conn = DriverManager.getConnection (url, userName, password); System.out.println ("Coneccion Database OKKK!!!"); try { Statement s = conn.createStatement (); //sentencias para elminar las tablas de la base de datos s.executeUpdate("DROP TABLE cdprofesores"); s.executeUpdate("DROP TABLE cdasignaturas"); s.executeUpdate("DROP TABLE cdestudiantes"); 30 Programación III
MySQL & Java _____________________________________________________________ s.close (); System.out.println ("\n tablas eliminadas"); } catch (Exception e) { System.err.println ("Problemas con acceso a la tabla\n"+e); } } catch (Exception e) { System.err.println ("No puede conectarse al Servidor Mysql"+e.toString()); } finally { if (conn != null) { try { conn.close (); System.out.println ("\n !!!!!Cerrada la coneccion a Mysql"); } catch (Exception e) { /* sin mensajes de error */ } } } } }
31 Programación III
MySQL & Java _____________________________________________________________ CONCLUSIONES Podemos concluir diciendo que el estudio de las tecnologías de base de datos como MySQL son de mucha importancia, porque por medio de ellas hemos podido comprender su funcionamiento, además de poder implementar tecnologías que están siendo utilizadas actualmente.
El desarrollo de actividades de diseño unidas al estudio de este tema nos han permitido conocer mas a fondo el funcionamiento e implementación de las clases y métodos utilizados en la conexión a bases de datos a través del lenguaje de programación JAVA; ya que nos ha, por decirlo así, comprometido a analizar y generar ideas con respecto al tema de la conexión y acceso a bases de datos, por lo que el estudio de las mismas es de mucha importancia en nuestra preparación, para poder realizar aplicaciones utilizando la tecnología Java y MySQL.
32 Programación III
MySQL & Java _____________________________________________________________ REFERENCIA ELECTRÓNICA Conexión a una base de datos en Java [en línea]. WebTaller. http://www.webtaller.com/construccion/lenguajes/java/lecciones/conexion_a _una_base_de_datos_en_java.php. [consulta: 10 de diciembre 2006]. Manual de MySQL [en línea]. WebTaller. http://www.webtaller.com/manualmysql/indice_manual_mysql.php . [consulta: 10 de diciembre 2006]. Java.sql [en línea]. The java developer Almanac. http://www.exampledepot.com/egs/java.sql/pkg.html?l=rel#Database%20M eta%20Data . [consulta: 12 de diciembre 2006]. Ejemplo simple de conexión y consulta a MySQL desde java [en línea]. Conexión y consulta a MySQL desde Java. http://www.geocities.com/chuidiang/java/mysql/EjemploJava.html .[consulta: 11 diciembre 2006]. Catálogos de tutoriales de java [en línea]. Adictos al trabajo. http://www.adictosaltrabajo.com/java/java.php?pagina=seccionjava . [consulta: 14 de diciembre de 2006]
Sun Microsystems [En línea]: " JDBC Data Access API ". http://java.sun.com/products/jdbc/index.html . [consulta: 14 de diciembre 2006]
33 Programación III