Gestor de una biblioteca realizado en Java + MySQL
El programa “Gestor de una Biblioteca” es el producto final de una de las dos prácticas obligatorias para la asignatura de Metodología y Tecnología de la Programación (MTP) de la carrera de Ingeniería Informática, realizada en la Universidad de León .
La documentación del programa podéis descargarla pinchando aquí programa debía cumplir unas especificaciones:
El objetivo de esta práctica es construir un sistema informático que permita gestionar una biblioteca. El sistema se construirá utilizando Java y MySql como gestor de bases de datos.
Existirán tres roles básicos de usuarios del sistema: el de administrador, que podrá realizar todas las tareas del sistema; el técnico de biblioteca, que podrá realizar tareas de introducción, modificación y consulta tanto de los datos de los lectores como de los fondos bibliográficos; y los lectores que podrán realizar tanto consultas de los fondos como solicitar préstamos sobre los fondos bibliográficos. Este último rol se dividirá en dos subroles denominados lectores-socios y lectores-base. La diferencia reside en la capacidad de solicitar préstamos. En cada uno de esos roles podrán existir varios usuarios pertenecientes a ellos y en concreto todos los usuarios de la biblioteca deberán pertenecer al menos al rol de lector.
La biblioteca dispone de libros y revistas. Podrán existir varias copias de un mismo libro. Los libros pueden ser prestados a cualquier lector durante tres semanas. Algunos libros son sólo para préstamos a corto plazo de 2 días. Las revistas sólo podrán ser prestadas a los lectores-socios. Los lectores-base podrán solicitar hasta 6 préstamos simultáneamente y los lectores-socios hasta 12. Todos los fondos bibliográficos pueden consultarse en la propia biblioteca, que dispone de una sala donde hay distintos volúmenes para su consulta. Si no hay copia del libro/revista en la sala se puede solicitar a los técnicos de biblioteca. Un volumen que se esté consultando en la sala no podrá ser prestado hasta que sea devuelto por el lector, lo que se supone sucede como mucho al final del día. Un técnico deberá registrar en el sistema cuándo se devuelve un libro de la sala de lectura a la sala de préstamo.
La funcionalidad del sistema cubrirá los siguientes aspectos:
- Permitirá gestionar todos los usuarios del sistema, dando de alta, baja y modificando datos de todos los roles del sistema manteniendo la seguridad adecuada. Los técnicos de biblioteca podrán manipular los datos de los lectores únicamente, los administradores podrán gestionar cualquier tipo de usuario del sistema. Inicialmente sólo existirá un administrador. Los lectores disponen de un carnet de biblioteca que permite identificarlos.
- Permitirá realizar un control de los fondos bibliográficos de la biblioteca, dando de alta o baja libros y revistas y sus copias existentes junto con su localización, sala o préstamo. Las revistas se publican periódicamente a lo largo del año, pero al final del mismo se encuadernan en un único volumen, agrupando los números de ese año. De cada volumen se almacenarán los siguientes datos como mínimo: de los libros, sus autores, el título, la editorial, el año, la edición, número de páginas, el isbn y la signatura; de las revistas, título, editorial, volumen, número, año y signatura.
- Permitirá solicitar préstamos a los lectores y el sistema llevará un control total sobre los préstamos, anotando cuándo se realiza un préstamo y cuándo su devolución. Los preśtamos se procesarán en una cola de solicitudes. Cuando se procese un préstamo y el libro esté disponible se aprobará el préstamo y se avisará al lector de que su préstamo está disponible. Cada lector tendrá un buzón en el sistema al que podrá acceder para ver el estado de sus préstamos. Los volúmenes a prestar serán entregados a los lectores por los técnicos de la biblioteca. Los técnicos también tendrán un buzón común a todos ellos donde se indicarán los préstamos a entregar y a qué lector. Cuando un préstamo no sea aprobado también se avisará al lector a través de su buzón, dándole la opción de realizar una reserva. En el futuro podrá implantarse un sistema de aviso a los lectores por e-mail o sms.
- Cuando un lector desee un libro y éste se encuentre en la sala de lectura o en préstamo podrá solicitar una reserva del mismo. El sistema llevará control de las reservas y las servirá a medida que los volúmenes estén disponibles. Las reservas no caducan, pero antes de conceder un préstamo asociado a una reserva, se enviará un mensaje al buzón del usuario para que confirme el préstamo; si no responde con una confirmación antes de un día, se anulará su reserva y no se realizará el préstamo. Cuando un lector desee tener un volumen un período mayor al habitual podrá solicitarse una ampliación del plazo de préstamo siempre que no exista ninguna reserva sobre él. El sistema deberá avisar al lector, a través de su buzón, del vencimiento de un préstamo dos días antes y del mismo y en el día siguiente a cuándo su préstamo haya vencido. No se permitirán más préstamos a un lector cuando tenga en su poder un volumen fuera de plazo.
- El sistema ofrecerá a cualquier usuario ciertas estadísticas sobre el uso de la biblioteca. Permitirá calcular el número de préstamos por volumen y por lector, el número total de préstamos de la biblioteca en un periodo de tiempo, el número de prestamos no devueltos a tiempo en un periodo de tiempo tanto por volumen como por lector como en total.
Todas las tareas del programa se realizarán mediante un interfaz gráfico de usuario de los habituales en los sistemas de ventanas de los sistemas operativos actuales.
El sistema tendrá que realizar ciertas tareas en ciertos momentos del tiempo, por ejemplo tiene que avisar de vencimientos de préstamos, o de vencimientos de reservas. Para facilitar la programación se supone que el programa realiza la revisión de vencimientos cada vez que arranca y además existirá una entrada en el menú que podrán utilizar únicamente los técnicos o administradores que realiza la revisión de vencimientos a instancia de un técnico o administrador.
FICHEROS FUENTE
suky
Dic 19, 2013 -
hola se ve muy interesante el sistema, me lo podrías pasar, el enlace que mandas de los códigos fuentes no funcionan, gracias
Jose Alberto Benítez Andrades
Dic 20, 2013 -
Buenas suky!, ya están los enlaces arreglados! 🙂
SUKY
Dic 21, 2013 -
muchas gracias, lo necesito para aprender te lo agradesco muchisimo saludos
debora meltrozo
Nov 1, 2017 -
biado
SUKY
Dic 21, 2013 -
Hola nuevamente molestando, abrí el zip que baje pero me dice que esta dañado cuando lo intento abrir y no aparece nada.
Jose Alberto Benítez Andrades
Dic 22, 2013 -
Vuelve a descargarlo, ya está bien subido 🙂
Ever Hernandez
Mar 11, 2014 -
Jose, este proyecto es exportable a netbeans?, otra cosa no encuentro la base de datos, esta añadida en el comprimido?, gracias
Jose Alberto Benítez Andrades
Mar 11, 2014 -
Si descargas el Zip y abres la clase “MiMysql.java” te darás cuenta de que esa clase contiene unas unas variables y unas funciones que CREAN las tablas de la base de datos cuando se abre el programa 🙂 (debes configurar ahí el servidor, usuario, base de datos y contraseña).
Por otra parte, este proyecto fue realizado bajo el entorno Eclipse, no NetBeans ^^.
Espero que te sirva, saludos.
Ever Hernandez
Mar 16, 2014 -
Perfecto gracias por la aclaracion, ya lei la clase que me indicas, de igual forma por tu trabajo
Oscar Ronquillo
Sep 23, 2014 -
Jose una pregunta al momento de ingresar usuario y contraseña no entra
Jose Alberto Benítez Andrades
Oct 7, 2014 -
Sí funciona, busca el usuario y la clave que se genera en el código 🙂
Andres Cardenas
Mar 5, 2014 -
Oye amigo tiene el codigo pero en netbeans para entenderlo mas, ademas esta muy interesante ese proyecto de Gestor Biblioteca, de antemano gracias por su atencion
Saludos
jhon jairo
May 7, 2014 -
muy bueno
jasu
Jul 19, 2014 -
gracias……pero podría pasarme los códigos para realizarlo por favor
Jose Alberto Benítez Andrades
Jul 19, 2014 -
Tienes el código en la entrada 🙂 Lee bien.
Karen Aguirre
Jul 30, 2014 -
Hola que tal, se ve super el proyecto, podria ver tu codigo, quiero asimilarlo a RMI 🙂
Jose Alberto Benítez Andrades
Ago 1, 2014 -
Está subido en esta misma web Karen…. lee bien 🙂
Edgar
Ago 4, 2014 -
Hola q tal, excelente aportacion lo puedo ejecutar utilizando netbeans… saludos
Jose Alberto Benítez Andrades
Ago 30, 2014 -
Sí claro, solo que para importar el proyecto tendrás que importar el código independientemente 🙂
angel
Ago 30, 2014 -
Saludos cordiales, Jose tu idea de compartir tu conocimiento me motiva a conocer y aprender sobre java y mysql, me uno al grupo
Jose Alberto Benítez Andrades
Ago 30, 2014 -
Me alegro Ángel, creo que todos debemos compartir y ayudar siempre en lo que se pueda 😀
Natalia
Oct 7, 2014 -
No puedo descargar el archivo
Jose Alberto Benítez Andrades
Oct 7, 2014 -
Funciona correctamente el enlace Natalia 🙂
evert
Oct 9, 2014 -
disculpen y la base de datos?? como se genera o asi.
Jose Alberto Benítez Andrades
Oct 21, 2014 -
Está incluida toda la info dentro 🙂
Rogelio
Nov 3, 2014 -
Hola amigo que tal, estoy tratando de desarrollar lo siguiente y no sé si alguien pudiera ayudarme es una materia, un proyecto escolar pero ya no entiendo y si he buscado mucho pero no he encontrado hacerlo bien, espero alguien pudiera ayudarme, consiste en contar con un inventario de un laboratorio de cómputo los datos que yo desee ingresar, lo que se valorará aquí es que existan 3 tipos de usuario con sus respectivos privilegios cada uno.
• Administrador (Agregar, modificar, eliminar y consultar información sobre los resguardante, los vigilantes y los activos informáticos, registra multas y eliminar multas pagadas)
• Resguardante (Ver activos informáticos asignados, ver reportes de uso indebido e imprimir políticas de seguridad)
• Vigilante de seguridad (Verifica mediante un identificador de usuario la información del activo informático y resguardante para levantar reporte de uso indebido)
Es muy parecido a este proyecto, por favor si alguien pudiera ayudarme se los agradecería mucho e infinítamente.
Jose Alberto Benítez Andrades
Nov 11, 2014 -
Compañero, para que realmente aprendas y te sirva de algo el curso que estás haciendo, lo que debes hacer es intentar hacer tú el programa… Otra cosa distinta es que en su realización, te encuentres con pequeños problemas que tendrás que ir resolviendo y ahí sí es interesante que expongas tu problema y que la gente te ayude a resolverlo 😀
Como bien dices, este programa te puede servir como guía para ver cómo tratar de abordar el problema.
Mucho ánimo! 🙂
Marco
Nov 27, 2014 -
usaste algun IDE??? no usaste ningun asistente para hacer la aplicacion verdad?? D:
Jose Alberto Benítez Andrades
Nov 27, 2014 -
Lo hice con eclipse, nada de ide gráfico para este 🙂
Alonso
Ene 5, 2015 -
Hola muy bueno tu trabajo lo necesito para presentar un examen, pero me gustaria saber como hago para iniciarlo
Sergio
Feb 18, 2015 -
Hola ,
tanto con eclipse como netbeans: tengo el mismo mensaje de error :
Exception in thread “main” java.io.FileNotFoundException: config.ini (El sistema no puede encontrar el archivo especificado)
at MiMysql.ConectaDB(MiMysql.java:185)
Puedes ayudarme a solucionar este problema , por favor ? muchas gracias
Jose Alberto Benítez Andrades
Feb 18, 2015 -
Buenas Sergio,
Muy sencillo… si abres el código verás que tienes que crear un fichero config.ini con unos datos para que se conecte a la base de datos 🙂
Sergio
Feb 20, 2015 -
Buenas José Alberto , por último, no creé fichero, copié exactamente el fichero “Config.ini” a la raíz del programa, y se soluciona el problema, gracias 🙂
Sergio
Abr 17, 2015 -
Buenas José Alberto, puedo pedirle una pergunta : cuando me autentifico en el programa como Administrador, para consultar los préstamos: en la ventana ” Consultar Prestamos “, cuando elijo el número íd usurario (–> radiobutton), despuès yo busco los préstamos, pero la tabla no muestra los préstamos del número del usuario pero elige los datos solamente en función del número de préstamo. La petición SQL es correcta para esta busqueda, por favor ? Le agradezco de antemano su respuesta.
Marcos
May 23, 2015 -
Hola amigo, puedes darme una instruccion de como carar el archivo. Soy nuevo en bases de datos con eclipse y el proyecto no me pasa de el pass y usuario, creo que es xq no crea la base de datos. o alguien que ya lo haya cargado me explica y me puede colaborar para poder lograr esto?
juan
Oct 17, 2015 -
Estimado, la base de datos lo creo en otro servidor???? porque no me funciona
java.lang.ClassNotFoundException: com.mysql.jdbc.Driver
Jose Alberto Benítez Andrades
Oct 17, 2015 -
Buenas Juan, lo que te falta es insertar el conector de mysql jdbc en tu proyecto de eclipse 🙂
Jaiver
Oct 27, 2015 -
Muy buen programa maestro. Pero lo puedo ejecutar sin una base de datos?
Jose Alberto Benítez Andrades
Ene 29, 2016 -
La base de datos la crea el propio programa, pero debes introducir los datos para que pueda crearla.
Luis Carlos
Ene 14, 2016 -
Buen día, fijate que no logro correr la aplicación… no me está creando la base de datos, ya revisé usuarios y claves.. pero me devuelve este error:
Ha habido un error de SQL java.sql.SQLException: Access denied for user ‘root’@’localhost’ (using password: YES)
Jose Alberto Benítez Andrades
Ene 29, 2016 -
Eso es porque estás introduciendo mal la contraseña de root en el fichero de configuración :), revísalo.
Brayan Gonzalez
Jul 9, 2016 -
Caballero Jose Alberto Benitez es que nesecito si usted me puede aclarar unas Cosas frente al tema de java
Alexander
Jul 17, 2016 -
Amigo no he logrado compilar tu proyecto 🙁
Brandon Juárez
Ago 16, 2016 -
Es muy interesante este proyecto, como para Web estaría excelente, gracias por compartir
JOSUE BLANCO
Nov 21, 2016 -
excelente aportacion, lo vere luego te digo que problema me dio y asi me ayudas
abdaar
Mar 6, 2017 -
puedes orientarme como inicio un sistema de biblioteca en java netbeans…
carlos crespo
May 4, 2017 -
cual es el codigo
Jose Alberto Benítez Andrades
May 4, 2017 -
Lo tienes para descargar en el propio enlace.
juan alfredo mora guevara
Jun 23, 2017 -
no me jaló alv, ya reprobe, gracias por nada, :*
cinthia
Sep 13, 2017 -
donde se descarga no veo link
Jose Alberto Benítez Andrades
Nov 14, 2017 -
Mira bien, porque el enlace está bien grande en azul 🙂 FICHEROS FUENTE
Juan D
Nov 10, 2017 -
Como puedo poner a correr el archivo?
Jose Alberto Benítez Andrades
Nov 14, 2017 -
De forma manual o integrando el proyecto completo en eclipse.
Angelo
Nov 14, 2017 -
Me puedes pasar todo en código de netbeans?
es para un proyecto final importante
recién llego de viaje y es lo ultimo que falta sus códigos
Jose Alberto Benítez Andrades
Nov 14, 2017 -
Siento decirte que este proyecto se realizó con eclipse 🙂 , el código lo tienes en esta misma página para descargar, saludos.
Yuuto
Feb 3, 2018 -
Hermano muchas gracias de verdad que me fue útil soy nuevo en la programación y con este proyecto logre adquirir nuevos conocimientos fue una buena experiencia adquirido sin palabras de verdad muchas gracias
kevin david acosta
Nov 13, 2018 -
Hola que tal, solo para preguntar como obtengo el codigo para poder hacer este proyecto??
Jose Alberto Benítez Andrades
Nov 13, 2018 -
Mira bien la página en la que estás, porque puedes descargarlo desde aquí :).
John
Nov 14, 2018 -
Buenas noches. Primeramente, muchas gracias por compartir el conocimiento ya que me ayuda mucho como estudiante. Por otra parte te agradecería si pudieses explicar un poco cómo ejecutar todo el proyecto con Eclipse ya que estoy dando mis primeros pasos con el entorno de desarrollo. Agradecido.
Erick
Dic 11, 2018 -
Oye amigo, por favor me podrias decir el usuario y la contraseña para ingresar? pls
darwin romero
Mar 19, 2019 -
esta muy interezante el codigo fuente no me aparece, descargare eclipse.
Ricardo
May 8, 2019 -
Muchas gracias por compartir, la base se crea sola cierto?. Solo hay que agregar el servidor login y contraseña?. Saludos
Jose Alberto Benítez Andrades
May 26, 2019 -
Se crea sola, puedes verlo en la clase MiMysql.java.
pamela
Ene 16, 2020 -
disculpa es muy interesante el proyecto pero no puedo descargarloooooo
Jose Alberto Benítez Andrades
Feb 7, 2020 -
El enlace funciona bien Pamela :).
Aaron
Ene 29, 2020 -
Hola amigo, espero y tenga buena tarde, perdone mi ignorancia pero se me esta complicando el saber cual es el usuario y la contraseña que me pide al comenzar el programa, me gustaría saber si me puede ayudar proporcionándome el usuario y contraseña, ya que su proyecto me sirve de mucha ayuda para un trabajo de la universidad por favor si me podría ayudar se lo agradecería demasiado……
Sin otro asunto a tratar me despido de usted estimado, esperando su pronta respuesta.
Jose Alberto Benítez Andrades
Feb 7, 2020 -
Hola Aaron, siento decirte que no te puedo ayudar, yo mismo doy clase en la Universidad y las tareas las ponemos para que aprendáis.
Saludos.
Mar
Ago 9, 2020 -
Muchísmas gracias por compartirlo. Acabo de terminar un curso de Java y me va a venir genial para afianzar los conceptos con un ejemplo tan completo.