















Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity
Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium
Prepara tus exámenes
Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity
Prepara tus exámenes con los documentos que comparten otros estudiantes como tú en Docsity
Encuentra los documentos específicos para los exámenes de tu universidad
Estudia con lecciones y exámenes resueltos basados en los programas académicos de las mejores universidades
Responde a preguntas de exámenes reales y pon a prueba tu preparación
Consigue puntos base para descargar
Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium
Comunidad
Pide ayuda a la comunidad y resuelve tus dudas de estudio
Ebooks gratuitos
Descarga nuestras guías gratuitas sobre técnicas de estudio, métodos para controlar la ansiedad y consejos para la tesis preparadas por los tutores de Docsity
Documentacion de proyecto final, base de datos con interfaz en java FX
Tipo: Ejercicios
1 / 23
Esta página no es visible en la vista previa
¡No te pierdas las partes importantes!
















Este proyecto empieza principalmente identificando las entidades de a Utilizar las cuales fueron
Donde posteriormente se debían escoger los mejores atributos para cada entidad seleccionada, donde las diferentes entidades de estos atributos serían los siguientes:
Habitación Hotel Gerente
Donde esta entidad siendo habitaciones se colocó los atributos de número, costo, refrigerador y tipo, de manera que numero se representó con un string, costo con un float de manera que este guardaría el costo en la memoria de forma entera y decimal y refrigerador sería un tipo booleano de manera que en el la interfaz gráfica se colocaría en una casilla si esta habitación poseía o no un refrigerador
Esta entidad sería una de las 3 de nuestra base de datos Hotel, de manera que en Workbech seria creada de la siguiente manera:, donde estaría la id de habitaciones “id_hbt” y se mostrarían las diferentes claves foráneas.
Esta entidad sería una de nuestras entidades fuertes en nuestra base de datos de modo que los atributos que esta consta son muchos más atributos los cuales serían: nombre, dirección correo y teléfono, siendo todos estos de tipo String, y tendría las diferentes claves foráneas de Habitación y de Gerente
Una vez identificado y asignado nuestras entidades, poniéndose en práctica lo visto en clase se optaría por utilizar varchar en todas de manera que esto cuente como si fuese una restricción donde solo permita una cantidad finita de caracteres como por ejemplo en teléfono en donde estaría permitido solo 10
En esta última entidad de nuestro proyecto se haría casi los mismos pasos que utilizamos antes donde esta va a poseer los siguientes atributos: ApellidoPaterno, ApellidoMaterno, rfc, correo nombre y teléfono, de manera que todos estos serían atributos de tipo String y posteriormente se haría lo hecho anteriormente
Como se había mencionado con anterioridad aparte de identificarse y asignarse una id siendo en este caso “id_gre” y donde aplicaríamos lo hecho en la anterior entidad lo cual seria convertirlos en varchar de manera que este solo permita una cantidad justa de caracteres, esto para cada atributo de la misma según lo requiera.
Donde en un inicio se crearían los siguientes paquetes de modo que cada uno iba a cumplir una función en específico, como por ejemplos los archivos. fxml los cuales serían el diseño de nuestra Interfax gráfica y tendrían las diferentes características de nuestra base de datos, siendo estas
Donde al trabajar con scene builder y con java fx este deberá generar los controladores correspondientes y donde irían los códigos y comandos de modo que estos controladores serían los siguientes, donde también se crearía su respectivo archivo.css de nuestra aplicación
Donde pasos antes se debió de colocar su respectiva carpeta de jar en donde esta iba a poseer las respectivas conexiones de java fx y en este caso donde los registros serian almacenados en sql se debía de poner su respectiva conexión en terminación. Jar, donde haciendo el siguiente quedaría de la siguiente manera:
Una ves hecho lo siguiente se debía de crear nuestro inicializador o si bien en nuestro caso nuestro main de manera que este incluiría lo siguiente
Este sería nuestro iniciador de nuestra aplicación de manera que con un try se colocaría la aplicación de nuestro archivo fxml de inicio y en donde se colocaría una excepción esto para los diferentes errores que fuerana a surgir a lo largo de este proyecto.
Una vez que se creó el Main, y el diseño de nuestra aplicación se debía de colocar el contenido que tendrían estas entidades y atributos de nuestra aplicación, por lo que se creó el paquete fes.aragon.modelo, en donde se crea lo siguiente:
En este apartado de nombre modelo estarán los atributos de nuestras diferentes entidades como por ejemplo Gerente, habitación, hotel, donde en el apartado anterior se había mencionado nosotros ya habíamos definido de que tipo serian por lo que todas las clases se crearían objetos privados los cuales solo servirían dentro de nuestro paquete de menara que quedaría de la siguiente manera basándonos en nuestro modelo entidad relación.
Por último se deberá de crear la respectiva conexión con Mysql y en donde se guardaran los diferentes registros de cada entidad y se creara en el paquete fes.aragon.mysql donde quedaría de la siguiente manera:
SQL DDL
El diagrama es muy básico pero muy eficiente, pues únicamente se compone de 4 tablas:
Para obtener el diagrama únicamente usamos los conocimientos adquiridos para hacer ingeniería inversa y obtenerlo a partir del esquema ya en funcionamiento.
Donde al igual que el anterior parcial se creó nuestro DDL, de la siguiente manera:
Donde se creara la base de datos Hotel, ocupando el conjunto de caracteres “utf8” el cual nos permitiría ocupar caracteres como la letra “ñ”, el cual nos será de gran ayuda ya que no sabemos con certeza qué tipo de datos estarán en el registro de manera que nos ayudara a evitar redundancia en el mismo
Para nuestra tercera tabla recibirá el nombre de habitaciones, de manera que esta va a a recibir el nombre de “id_hbt” y poseerá los atributos de: costo, refrigerador, y tendrá la clave foránea de tipos, esto recordando nuestro diseño el cual nos indica que este únicamente va a poseer relación con la entidad habitación, así mismo esta al ser características de la habitación no tendrá como tal VARCHAR o STRING como ejemplos o proyectos anteriores, siendo únicamente un INT y con una restricción de que este solo acepte decimales y un Boolean el cual en nuestro diseño de Interfaz Gráfica se especificaría con una palomita si la habitación iba o no a tener esta característica.
Para terminar seria nuestra última tabla de nombre hoteles, la cual iba a ser nuestra entidad fuerte donde en un inicio esta tendrá las llaves foráneas de Habitación y de Gerente, posteriormente se le asignara el nombre de “id_htl”, y se le colocaran sus diferentes atributos siendo estos nombre, dirección, correo y teléfono, donde está a diferencia de las anteriores entidades poseerán VARCHAR en su totalidad de atributos, donde solo recibirá una cantidad de datos finos.
Por último se crearía sus respetivas restricciones donde al igual que con la entidad Gerente se haría la respectiva restricción con correo donde deberá aceptar “@” y “.”, posteriormente en nombre el cual solo aceptara caracteres de la “A-Z” Y por último como antes se había mencionado se colocaran las FOREIGN KEY de las tablas Gerente y Hotel.
Como primer problema, tuvimos la incompatibilidad del proyecto inicial, es decir la versión dada por el profesor, con la de nuestros respectivos sistemas, hablando específicamente de java y de la versión del conector de MySQL. La versión otorgada por el profesor fue la 8.0.21, por lo tanto, tuvimos que sustituirlo desde el build path para tener la compatibilidad máxima y evitar advertencias o errores. Para ello simplemente tuvimos que entrar a nuestro build path para cambiarlo, entrando a esta configuración de la siguiente manera:
Una vez adentro lo único que tenemos que hacer en eliminar el conector de la versión que queremos sustituir y agregarlo en la classpath, para ello solo necesitamos buscar la ruta de nuestra versión y agregarla para que quede actualizado:
Después de investigar posibles soluciones llegamos a un foro el cual nos dio la solución, y para resumir el problema estaba en las librerías de JavaFX, pues a pesar de que ya habían sido importadas no tenían la instrucción de correrlas al momento de iniciar el programa, por lo tanto tuvimos que agregar la siguiente instrucción como argumentos VM: --module-path "RUTA DE LIBRERÍA" --add- modules javafx.controls,javafx.fxml
Después de lograr correr el programa, tuvimos un problema con el esquema de la base de datos, pues a pesar de lograr la conexión no podíamos obtener los registros de la base, pues al momento de apretar el botón de “abrir”, nos mandaba un error como el siguiente:
Para este error, la solución que encontramos fue volver a cargar el esquema “hotel” en workbench. De esta manera pudimos acceder a la base de datos sin problema:
Antes de iniciar las instrucciones del programa en sí, es necesario activar el servidor en donde se encuentre la base de datos “hotel”. Esto es muy sencillo pues en caso de que no esté iniciada, lo que tenemos que hacer es apretar inicio de Windows y buscar “servicios”.
Una vez en servicios ubicaremos aquel con el nombre “MySQL”, en este daremos doble clic, y daremos en el botón de iniciar servicio, una vez hecho esto podemos pasar al programa en eclipse.
Una vez el servidor está listo podemos iniciar el programa, el cual nos mostrara la siguiente interfaz:
En la misma interfaz podremos llenar los datos del gerente del hotel en cuestión, la habitación o habitaciones, las cuales podremos llenar con los datos en cada uno de los botones, los cuales tendrán una ventana nueva con una interfaz diferente, en el caso de gerente se nos mostrara algo como lo siguiente:
En caso de tener algún error de cualquier tipo nos mandara un mensaje, el cual tendremos que cerrar y revisar que los datos no estén repetidos o puedan ser diferentes a lo que pide el campo, como el siguiente ejemplo el cual no tiene un punto como terminacion “.com”:
Además de ser marcado en color rojo al intentar guardarlo nos aparecerá un mensaje como el siguiente:
Esto puede pasar con cualquier campo, tanto al momento de crear un hotel, como un gerente, así como una habitación.
Y en el caso de habitación tendremos otra tabla, dependiendo del hotel estará vacía o con habitaciones, la cual tendrá un aspecto similar a la tabla de hoteles, pero en este caso, tendremos otras columnas, las cuales tendrán el siguiente orden: Numero, Costo, Refrigerador y Tipo.
En este caso también tendremos 3 opciones, “nueva”, “modificar” y “cancelar”, la cual tienen funciones similares a la tabla de hoteles, en el caso del botón de nueva tendremos que llenar los datos de la misma, en el caso de tipo, tendremos únicamente 3 opciones las cuales serán “individual”, “matrimonial” y “mixto”:
Para activar el botón de modificar tendremos que seleccionar alguna habitación, para después poder modificar la misma, al momento de activar esta opción, nos dará la misma interfaz que al crear una nueva habitación.