proyecto semestral - mysql & java

39
UNIVERSIDAD DE PANAMÁ UNIVERSIDAD DE PANAMÁ CENTRO REGIONAL DE VERAGUAS CENTRO REGIONAL DE VERAGUAS FACULTAD DE INFORMÁTICA, ELECTRÓNICA Y COMUNICACIONES FACULTAD DE INFORMÁTICA, ELECTRÓNICA Y COMUNICACIONES LICENCIATURA EN INGENIERÍA EN INFORMÁTICA LICENCIATURA EN INGENIERÍA EN INFORMÁTICA PROGRAMACIÓN III PROGRAMACIÓN III PROYECTO SEMESTRAL PROYECTO SEMESTRAL Sobre: Sobre: CONECTIVIDAD DE BASES DE DATOS EN JAVA CONECTIVIDAD DE BASES DE DATOS EN JAVA Presentado por: Presentado por: Carlos J. De Gracia R. 9-721-393 Carlos J. De Gracia R. 9-721-393 Facilitador: Facilitador: Profesor Diego Santimateo Profesor Diego Santimateo II Año II Año II Semestre II Semestre

Upload: api-3696445

Post on 07-Jun-2015

6.227 views

Category:

Documents


4 download

TRANSCRIPT

Page 1: Proyecto Semestral - Mysql & Java

UNIVERSIDAD DE PANAMÁUNIVERSIDAD DE PANAMÁCENTRO REGIONAL DE VERAGUASCENTRO REGIONAL DE VERAGUAS

FACULTAD DE INFORMÁTICA, ELECTRÓNICA Y COMUNICACIONESFACULTAD DE INFORMÁTICA, ELECTRÓNICA Y COMUNICACIONESLICENCIATURA EN INGENIERÍA EN INFORMÁTICALICENCIATURA EN INGENIERÍA EN INFORMÁTICA

PROGRAMACIÓN IIIPROGRAMACIÓN III

PROYECTO SEMESTRALPROYECTO SEMESTRALSobre:Sobre:

CONECTIVIDAD DE BASES DE DATOS EN JAVACONECTIVIDAD DE BASES DE DATOS EN JAVA

Presentado por:Presentado por:

Carlos J. De Gracia R. 9-721-393Carlos J. De Gracia R. 9-721-393

Facilitador:Facilitador:

Profesor Diego SantimateoProfesor Diego Santimateo

II AñoII AñoII SemestreII Semestre

15 de diciembre de 2006 15 de diciembre de 2006

Page 2: Proyecto Semestral - Mysql & Java

MySQL & Java_____________________________________________________________

INTRODUCCIÓNINTRODUCCIÓ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.

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.

Programación III2

Page 3: Proyecto Semestral - Mysql & Java

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

PROBLEMA PROPUESTOPROBLEMA PROPUESTO

Programación III3

Page 4: Proyecto Semestral - Mysql & Java

MySQL & Java_____________________________________________________________

FUNDAMENTACION TEÓRICAFUNDAMENTACION 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

Programación III4

Page 5: Proyecto Semestral - Mysql & Java

MySQL & Java_____________________________________________________________

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.

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.

Programación III5

Page 6: Proyecto Semestral - Mysql & Java

MySQL & Java_____________________________________________________________

METODOLOGÍA DE DISEÑO DE BASE DE DATOSMETODOLOGÍ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.

Programación III6

Page 7: Proyecto Semestral - Mysql & Java

MySQL & Java_____________________________________________________________

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

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

llamara recibir, ya que un estudiante puede recibir algunas asignaturas, pero

una asignatura puede tener varios estudiantes.

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.

Programación III7

ESTUDIANTES ASIGNATURAS PROFESORES

impartir 0..10..n

ESTUDIANTES ASIGNATURAS PROFESORES

recibir impartir11..n1...61...n

Page 8: Proyecto Semestral - Mysql & Java

MySQL & Java_____________________________________________________________

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.

ESTRUCTURACIÓN DEL PROGRAMAESTRUCTURACIÓN DEL PROGRAMA

//CLASE PRINCIPAL QUE PERMITE REALIZAR LAS OPERACIONES//DE INSERCION, CONSULTA Y MODIFICACIONclass Principal{

public static void main (String[] args){

//men obtiene el valor de la opcion seleccionadaMenuOpciones men= new MenuOpciones();InsertaDatosEnLaTabla agregar=new InsertaDatosEnLaTabla();SeleccionaDatosDeTabla seleccion=new

SeleccionaDatosDeTabla();ActualizarDatos modificar=new ActualizarDatos();int bandera=0;int opcion=0;

Programación III8

Page 9: Proyecto Semestral - Mysql & Java

MySQL & Java_____________________________________________________________

while (bandera==0){

opcion=men.menuPrincipal();switch (opcion){

case 1://accede al metodo que permite//insertar los datos en la base de datosagregar.ingresarDatos();break;

case 2://accede al metodo permite consultar //los datos de la tabla calificacionesseleccion.consultarCalificaciones();break;

case 3://accede al metodo que permite modificar//datos de la tabla profesoresmodificar.actualizarProfesores();break;

case 4://accede al metodo que permite //modificar los datos de asignaturamodificar.actualizarAsignaturas();break;

case 5://bandera variable que termina //el ciclo de opcionesbandera=1;break;

}}

}}

import java.io.*;import java.sql.*;//clase que contien el menu de opcionespublic class MenuOpciones{

CapturaeImpresion mensaje=new CapturaeImpresion();String msg="****************Ingrese la Opcion**************** ";public int menuPrincipal(){

int opcion=0;try

Programación III9

Page 10: Proyecto Semestral - Mysql & Java

MySQL & Java_____________________________________________________________

{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));

}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);

Programación III10

Page 11: Proyecto Semestral - Mysql & Java

MySQL & Java_____________________________________________________________

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 (); 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.*;

Programación III11

Page 12: Proyecto Semestral - Mysql & Java

MySQL & Java_____________________________________________________________

import java.util.*;import java.sql.*;//clase que permite insertar datos en la tablaclass 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 (); conn = DriverManager.getConnection (url, userName,

password); System.out.println ("Coneccion Database OKKK!!!"); try

{Statement s = conn.createStatement ();StringTokenizer token;FileReader datos=new FileReader("2006-

PRIMERO.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();

Programación III12

Page 13: Proyecto Semestral - Mysql & Java

MySQL & Java_____________________________________________________________

if (token.nextToken().equals("ARQUITECTURA."))

{flag=1;

}}

}if (flag==1){

linea=entrada.readLine();

/*---------------------------------------------------------*/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();}

Programación III13

Page 14: Proyecto Semestral - Mysql & Java

MySQL & Java_____________________________________________________________

else //curso-asignatura

{

token.nextToken();}j++;

}linea=entrada.readLine();

}else{

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()+" ";}

}}

Programación III14

Page 15: Proyecto Semestral - Mysql & Java

MySQL & Java_____________________________________________________________

k++;}linea=entrada.readLine();

}i++;

}

/*---------------------------------------------------------*/linea=entrada.readLine();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();

Programación III15

Page 16: Proyecto Semestral - Mysql & Java

MySQL & Java_____________________________________________________________

linea=entrada.readLine();linea=entrada.readLine();linea=entrada.readLine();linea=entrada.readLine();linea=entrada.readLine();

/*---------------------------------------------------------*/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++;

}

Programación III16

Page 17: Proyecto Semestral - Mysql & Java

MySQL & Java_____________________________________________________________

//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);}while(linea.equals("

Programación III17

Page 18: Proyecto Semestral - Mysql & Java

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+"','"+codprof+"')"; 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"); } catch (Exception e) { /* sin mensajes de error */ }

Programación III18

Page 19: Proyecto Semestral - Mysql & Java

MySQL & Java_____________________________________________________________

} } 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:"); System.out.println("****************************"); while (rs.next ()) { System.out.println ("Asignatura= " +

rs.getString ("codigo_asignatura") + "\tCedula = " + rs.getString ("cedula") + "\tNota = " + rs.getString ("nota"));

Programación III19

Page 20: Proyecto Semestral - Mysql & Java

MySQL & Java_____________________________________________________________

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 */ } } } } }

import java.sql.*;//clase que permite actualizar datos de la base de datosclass ActualizarDatos{

//modifica los datos de la tabla profesorespublic void actualizarProfesores(){

Connection conn = null;

Programación III20

Page 21: Proyecto Semestral - Mysql & Java

MySQL & Java_____________________________________________________________

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 ()){

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");

}

Programación III21

Page 22: Proyecto Semestral - Mysql & Java

MySQL & Java_____________________________________________________________

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

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)

{

Programación III22

Page 23: Proyecto Semestral - Mysql & Java

MySQL & Java_____________________________________________________________

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;}

}//else }//else

}//while }//if

}//while

}

catch(Exception e){

System.out.println("Error borrando los datos : "+e.toString());

}

}

Programación III23

Page 24: Proyecto Semestral - Mysql & Java

MySQL & Java_____________________________________________________________

catch(Exception error){

System.err.println ("No puede conectarse al Servidor Mysql"+error.toString());

}}//

//modifica los datos de la tabla asignaturaspublic 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){

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 ()){

Programación III24

Page 25: Proyecto Semestral - Mysql & Java

MySQL & Java_____________________________________________________________

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**");

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

Programación III25

Page 26: Proyecto Semestral - Mysql & Java

MySQL & Java_____________________________________________________________

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");

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

Programación III26

Page 27: Proyecto Semestral - Mysql & Java

MySQL & Java_____________________________________________________________

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+"'";

s.executeUpdate(sql3);

System.out.println("LOS DATOS HAN SIDO ACTUALIZADO:");

}

else

{

sw=1;

}}

}//else }//else

}//while }//if

}//while

}

Programación III27

Page 28: Proyecto Semestral - Mysql & Java

MySQL & Java_____________________________________________________________

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 devolverlosclass CapturaeImpresion{

//metodo que permite obtener datospublic String obtenerdatos(String msg){

String ret; ret=JOptionPane.showInputDialog(null,"\n"+msg);return (ret);

}//metodos que permiten devolver datospublic 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) {

Programación III28

Page 29: Proyecto Semestral - Mysql & Java

MySQL & Java_____________________________________________________________

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"); 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 */ } } } } }

Programación III29

Page 30: Proyecto Semestral - Mysql & Java

MySQL & Java_____________________________________________________________

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

Programación III30

Page 31: Proyecto Semestral - Mysql & Java

MySQL & Java_____________________________________________________________

REFERENCIA ELECTRÓNICAREFERENCIA 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/manual-

mysql/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

%20Meta%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]

Programación III31

Page 32: Proyecto Semestral - Mysql & Java

MySQL & Java_____________________________________________________________

Sun Microsystems [En línea]: " JDBC Data Access API ". http://java.sun.com/products/jdbc/index.html . [consulta: 14 de diciembre 2006]

Programación III32