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
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
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
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
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
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
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
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
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
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
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;
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
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);
}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
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;