1.1 Propósito 4
1.2 Alcance 4
1.3 Definiciones en este sistema 4
2 Referencias de datos 4 p >
3 Concepto de diseño 4
3.1 Diseño de capa de datos 5
Activador 5 de la tabla user_book
Procedimiento almacenado para la renovación de libros por parte del usuario 6
>Tabla 7 de vista de vencimiento de reembolso
3.2 Diseño de capa de enlace de datos 8
Manual de usuario Diseño de Bean de entidad 9
Diseño de Bean de entidad consumidor 10 p>
Diseño de Bean de entidad de registro de usuario 11
3.3 Diseño de capa de lógica de datos 12
Diseño de Bean de sesión de libro 13
Diseño de Bean de sesión de usuario 14 p>
Diseño de Bean de sesión de registro 15
3.4 Diseño de capa de aplicación de red 15
Bean de verificación de valor 16
Bean de codificación 16
JDBCBean bean 16
Clasificación de bean 16
Instalación de bean 16
Bean SplitPage 17
Bean de inicio de sesión de usuario 17
Buscar libro bean 17
SearchDeadline bean 17
Verificar servlet 17
obtener eliminar servlet 17
GetBookSubmit servlet 18 p>
Servlet GetUserSubmit 18
Servlet GetRenewBook 18
Servlet GetBorrowBook 18
Servlet GetReturnBook 18
4 Estructura del programa 18
4.1 Estructura organizativa del proyecto 18
4.2 División de autoridad funcional 20
4.3 Diseño de página/programa web 21
4.4 Funciones implementadas por el sistema 22
5 División de tareas 22
1 Prefacio
1.1 Propósito
Este documento describe el libro en detalle El diseño del sistema de gestión es principalmente para permitir a los desarrolladores tener una comprensión profunda de la construcción y mantenimiento de este proyecto.
1.2 Alcance
Las descripciones de este documento se aplican únicamente a la versión 1.0 del sistema de gestión de bibliotecas.
1.3 Definiciones en este sistema
Las siguientes son las definiciones de los términos profesionales utilizados en este manual y las frases originales de las palabras iniciales extranjeras:
Términos o abreviaturas Definición y descripción
El nombre del sistema.
Permisos del sistema lector: lectores normales
Permisos del sistema BookAdmin: bibliotecario
Permisos del sistema usuario administrador: usuario administrador
Permisos del sistema SuperAdmin: superadministrador (administrador del sistema)
Rol de usuario para el sistema de pregrado: Estudiante de pregrado
Rol de usuario para el sistema de estudiantes de posgrado: Estudiante de posgrado
Rol de usuario del sistema de profesor: Profesor
2 Referencia de datos
Plataforma de software de aplicación de la Universidad de Tsinghua y notas de conferencias sobre tecnología central Gu Ming.
Documentos auxiliares de enseñanza de tecnología central y plataforma de software de aplicación de la Universidad de Tsinghua: Zhang, Chen Yong, Lin.
Master EJB (Segunda Edición)
Aplicaciones J2EE y servidores lógicos Web BEA. Trans. Xing Guoqing y cols. Prensa de la industria electrónica, abril de 2002.
Patrón de diseño: la base del software reutilizable orientado a objetos, Erich Gamma et al., Machinery Industry Press.
3 Concepto de diseño
El sistema está diseñado estrictamente de acuerdo con la estructura de cuatro capas, que se divide en capa de datos (servidor SQL), capa de enlace de datos (bean de entidad) y capa de lógica de datos (bean de sesión) y capa de aplicación de red (Java Bean, Java Servlet, Java Server Page).
Las cuatro capas son completamente independientes y se pueden implementar en cuatro servidores, materializando la idea de aplicaciones distribuidas.
Estrictamente hablando, la función de la capa de datos es implementar el almacenamiento de datos básico (todas las funciones de procesamiento lógico deben ser administradas por CMP), pero por razones de aprendizaje, también se usa algo de lógica en el procesamiento de la base de datos, como como el uso de tablas temporales a nivel de sistema de procedimiento almacenado para procesar las renovaciones de libros de los lectores, el uso de activadores para evitar que los usuarios que no han devuelto libros y los libros no pagados sean cancelados, y el uso de vistas para detectar registros de préstamo de libros para implementar recordatorios de vencimiento.
La capa de enlace de datos realiza la conexión con la base de datos. Su función es proteger las diferencias entre la base de datos y la plataforma y lograr la independencia de la capa subyacente. Esta capa utiliza tecnologías como búsqueda difusa, mapeo de tablas múltiples y relaciones para lanzar objetos agregados u objetos de interfaz remota a la siguiente capa a través de las funciones de búsqueda de datos de métodos de búsqueda y selección.
La capa de lógica de datos implementa el procesamiento lógico de datos, como convertir objetos de interfaz remota en objetos de valor, convertir objetos agregados en vectores de objetos de valor y usar clases de fecha para completar cálculos relativamente complejos, como encontrar dos específicos. fechas entre.
La capa de aplicación de red completa funciones de aplicación como saltos de página y visualización de páginas, así como algunas funciones adicionales como: verificación de imágenes, verificación de inicio de sesión, control de nivel, filtrado de código, control de paginación, detección de valores de entrada, y registros de préstamo de libros Impresión, registro de registros de operación del sistema, configuración del sistema, etc. (JDBC se utiliza para implementar procedimientos almacenados y funciones de búsqueda difusa de libros)
3.1 Diseño de capa de datos
Tabla de base de datos
Descripción de la función del nombre de la tabla
User_consumer registra toda la información del usuario.
User_book registra toda la información del libro.
User_logBook registra la información de los usuarios que utilizan este sistema, conserva todos los registros de préstamo de libros y puede usarse como registros del sistema y materiales de informes.
Disparadores para la tabla user_book
Uno de los desencadenantes utilizados para revertir la operación de eliminación si el libro que se va a cancelar se retira y no se devuelve.
Crear bookhavelog activador en dbo.user_book
Para eliminar
Me gusta
declarar @bookISBN varchar(50)
p >seleccione @ libro ISBN = libro _ ISBN de eliminado
Si existe (seleccione * de user_logBook donde logb_book_ISBN=@bookISBN y
logb_backdate está vacío)
Inicio
Revertir
Regresar
Fin
Procedimiento almacenado para renovación de libros por parte del usuario
Procedimientos almacenados se utilizan para implementar operaciones lógicas para que los usuarios renueven libros. Según la información actual del usuario, determine si el usuario tiene la autoridad para renovar libros y envíe los resultados del procesamiento a una tabla temporal.
Proceso de creación user_renew_book @xxxparm int AS
Crear tabla ##temp(sentencia varchar(50))
DECLARAR @username varchar(50)
SET @username=(Seleccione logb_cons_username de user_logBook donde ID=@xxxparm)
Si @username está vacío
INICIAR
INSERTAR en # # valor temporal('ID no existe')
Retorno
Fin
Estado @timelimit int
SET @ límite de tiempo =( seleccione log b _ límite de tiempo del usuario _ logBook, donde ID=@xxxparm)
Estado @renewday int
SET @ día de renovación =(seleccione contras _ maxday del usuario _ consumidor donde cons _ nombre de usuario = @ nombre de usuario)
Estado @maxrenew int
SET @ max renew =(seleccione cons _ max renovación del usuario _ consumidor donde cons _ nombre de usuario = @ nombre de usuario) p>
IF(@ día de renovación * @ renovación máxima) gt;=@límite de tiempo
Iniciar
actualizar usuario _ libro de registro establecer registro _ límite de tiempo = registro _ límite de tiempo @ renovar día donde ID=@xxxparm
-actualizar usuario _ consumidor establecer cons _ maxrenews = cons _ maxrenews-1 donde cons_username=@nombre de usuario
Insertar # # valores temporales ( ' Renovación exitosa')
Volver
Fin
Otro
Inicio
Insertar en # #Valor temporal( 'No tienes permiso para renovar este libro')
Volver
Fin
Ir
Vista de la tabla de recordatorio de vencimiento
p>
Utilice DATEDIFF, DATEADD, CAST, GETDATE y otras funciones para calcular el registro de vencimiento a partir de la tabla de registros de préstamo de libros, luego busque la información del lector correspondiente según este registro y devuélvala por correo electrónico en la página web.
Crear vista dbo.deadline
Como
SELECCIONE EL 100 POR CIENTO SUPERIOR dbo . user_logbook . logb_cons_username,
dbo.user_logBook.logb_outdate, DATEADD ([día], dbo . usuario _ libro de registro . logb _ límite de tiempo,
CAST (dbo . usuario _ libro de registro . logb _ desactualizado AS fechahora)) AS fecha límite _ fecha, GETDATE()
Como fecha_ahora, dbo.user_consumer.cons_name, dbo.user_consumer.cons_kind,
dbo.user_consumer.cons_rank, dbo.user_consumer.cons_email,
dbo.user_consumer. cons_maxrenew,dbo.user_consumer.cons_maxbook,
dbo.user_logbook.logb_book_ISBN,dbo.user_book.book_name,
dbo.user_book.book_kind, dbo.user_book.book_storage, dbo.user_book. book_rank,
dbo.user_logbook.logb_time limit
DESDE la conexión interna de dbo.user_logBook
p>
dbo.user_consumer ON
dbo . usuario _ libro de registro . logb _ cons _ nombre de usuario = dbo usuario _ cons _ nombre de usuario INNER
Unirse
dbo.user_book ON
dbo. . usuario _ libro de registro . logb _ libro _ ISBN = dbo . usuario_ libro . límite,
CAST(dbo . user _ logbook . logb _ outdate AS datetime)), GETDATE()) gt = 0) y
(dbo.user_logBook.logb_backdate está vacío; )
El orden se basa en dbo . user _ logbook . logb _ cons _ nombre de usuario desc
3.2 Diseño de capa de enlace de datos
Entity beans
Manual de usuario Diseño de Entity Bean
Interfaz de página de inicio remota del manual de usuario
Descripción del método
FindAllBook Obtenga toda la información del libro.
FindByISBN obtiene información del libro a través del ISBN del libro.
FindSearcher utiliza la ambigüedad de las palabras clave para encontrar información sobre libros.
selectUserByBookISBN
(libro de usuario remoto) utiliza el método de selección para implementar búsquedas relacionadas en varias tablas.
Código para implementar la búsqueda difusa:
Seleccione el objeto (p) del manual del usuario como p, donde p.bookName es similar a concat(concat(' ',? 1), ' ' ) o le gusta a p.bookAuthor? 1 o p.book¿Te gusta? 1 o p. lanzamiento del libro como? 1 o p. resumen del libro como? 1 o p.bookISBN como concat(concat(' ',?1),' ') o p.bookRemark como? 1
Entidad consumidora del usuario Diseño de Bean
Interfaz de página de inicio remota del consumidor del usuario
Descripción del método
Encuentre toda la información del usuario.
FindByUsername busca información del usuario por nombre de usuario.
FindSearcher utiliza la ambigüedad de las palabras clave para encontrar información del usuario.
Seleccionar libro por nombre de usuario
(usuarioconsumidor remoto) utiliza el método de selección para implementar búsquedas relacionadas en varias tablas.
Código para implementar la búsqueda difusa:
seleccione objeto(p del usuario consumidor como p donde p. consusername como concat(concat(' ',? 1), ' ') o p .consSerial como? 1 o p.consName como concat(concat(' ',? 1), ' ') o p.consRemark como 1
Entidad de registro de usuario Diseño de frijol
Interfaz de página de inicio remota de registro de usuario
Descripción del método
FindallbybookISBN busca todos los registros de préstamo de este libro
FindbybookISBN encuentra este libro El registro de préstamo actual de este libro.
Findallbyusername encuentra todos los registros de préstamo de este usuario.
Findbyusername encuentra todos los registros de préstamo de este usuario.
Findoutlog obtiene los registros de préstamo de. todos los libros no devueltos.
FindbyID busca un determinado registro de préstamo de libros registrando el número de serie de los registros de préstamo de libros de la fecha
(coincidencia aproximada, como enviar "mayo de 2004"). para obtener el tiempo de registro final: todos los registros de préstamo prestados o devueltos en mayo de 2004)
Findallog obtiene todos los registros de préstamo de libros.
FindLogByDay obtiene un conjunto de códigos para el tiempo de grabación final mediante coincidencia difusa:
Seleccione el objeto (p) del registro de usuario como p, donde (p.logbBackdate es nulo, p.logbOutdate es concat(concat(' ',?1),' ')) o (p.logbBackdate no es nulo y p.logbBackdate es similar a concat(concat(' ',?1),'') )
3.3 Diseño de capa de lógica de datos
Bean de sesión
Diseño de bean de conversación de libro
Bean de libro
Realizar la adición , eliminación, modificación y consulta de libros, búsqueda difusa, búsqueda de lectores a través de libros y otras funciones.
El método implementa todo el procesamiento lógico y la conversión internamente y devuelve un objeto de valor o un vector de objetos de valor a la interfaz remota.
Diseño de beans de sesión de usuario
Bean de usuario
Los usuarios (lectores) pueden agregar, eliminar, cambiar, buscar, buscar libros y otras funciones a través del lector.
El método implementa todo el procesamiento lógico y la conversión internamente y devuelve un objeto de valor o un vector de objetos de valor a la interfaz remota.
Diseño de beans de sesión de registro
Judías largas
Implementa principalmente varias operaciones en registros (registros de préstamo de libros) y proporciona múltiples formas de obtener registros (por lector, por libro, por fecha, por estado de prestado y devuelto, etc.). ). Todo el procesamiento lógico y la conversión se implementan dentro del método, que devuelve un objeto de valor o un vector de objetos de valor a la interfaz remota. Además, existen los siguientes métodos:
Función de método
libro de préstamo de usuario booleano público (nombre de usuario de cadena, ISBN del libro de cadena) utiliza una transacción para encapsular todas las operaciones lógicas para que los lectores tomen prestados libros. Cuando pedir prestado un libro devuelve con éxito un valor verdadero, no puede devolver un valor falso, por lo que se llama al bean enCode para transcodificar el chino.
El usuario booleano público Returnbook (String Logbid) encapsula todas las operaciones lógicas de devolución de libros de una transacción, es decir, implementa la función de cancelación de un registro de préstamo de libros y llama al bean enCode para transcodificar el chino. .
El registro público de vectores entre días (inicio del día de cadena, fin del día de cadena) devuelve todos los registros entre dos fechas, implementado principalmente mediante la clase Calendario.
3.4 Diseño de la capa de aplicación de red
Esta capa está diseñada en base a los principios de encapsulación, borrosidad de datos y reutilización del pensamiento orientado a objetos.
De acuerdo con el principio de manejo de errores de impresión de errores de operación del sistema en el sistema (System.out.println), la entrada del usuario y los errores de operación conducen a páginas amigables de manejo de errores y brindan indicaciones amigables.
Cada llamada a un bean de sesión se escribe en el archivo de registro de ejecución del sistema. La ruta predeterminada es c:\\booksmanagerlog.dat.
Bean de verificación de valor
Encapsula múltiples métodos estáticos.
Se puede utilizar para detectar si un determinado valor ya existe en un determinado campo de una tabla (se puede utilizar para detectar usuarios duplicados y cuentas duplicadas), detectar nombre de usuario, contraseña, edad, correo electrónico, número, legalidad. de fechas, etc
Bean de codificación
Trabajo de codificación y transcodificación de empaquetado:
Conversión de código de visualización HTML, por ejemplo, conversión
Transcodificación china que puede ser código sobrecargado.
Codificación de cifrado y descifrado de contraseñas.
Bean JDBCBean
Encapsula todas las operaciones de la base de datos. Incluyendo métodos de ejecución de SQL con devolución de conjunto de resultados y método de ejecución de SQL sin devolución de conjunto de resultados.
Level Bean
Encapsula el acceso a la página con cuatro permisos (lectores normales, administradores de usuarios, bibliotecarios y administradores del sistema), lo que equivale a la función de bloqueo de página.
Instalar beans
título de cadena estática pública = " super biblioteca "; // nombre del sistema
cadena estática pública dbS = " booksManagerDS // JNDI de la base de datos nombre
Cadena estática pública errorPage="dealError.jsp? theError = ";//Página de manejo de errores amigable, use el método get para pasar el motivo del error.
Página de inicio de cadena estática pública = "JSP";//Página de inicio predeterminada
/ /authority-.
Cadena estática pública Reader = " Reader//Reader
Cadena estática pública UserAdmin = " UserAdmin//Usuario Administrador
Pública Cadena estática BookAdmin = " BookAdmin//Bibliotecario
Cadena estática pública SuperAdmin = " SuperAdmin//Administrador del sistema
//Grado- >Cadena estática pública licenciatura = "Pregrado"; /Estudiantes de pregrado
public static int undergater enew = 1; //El número de veces que los estudiantes de pregrado pueden renovar sus préstamos
public static int. que los estudiantes de pregrado pueden pedir prestado al mismo tiempo
Public static string Graduate = " Graduate //Estudiante de posgrado
public static int Graduate new = 2; //Estudiante de posgrado. El número de veces El préstamo se puede renovar.
public static int Graduate max day = 45; //El número de días que los estudiantes graduados pueden pedir prestado a la vez.
Public static string Teacher = " Teacher//Teacher
public static int teacher new = 3; //El número de veces que el profesor puede renovar el préstamo.
public static int teacher max day = 60; //El número de días que un profesor puede pedir prestado a la vez
// -
public static int rsPerPage = 5; Muestra el número de registros por página.
public static int min books = 4; //Cantidad mínima de préstamo predeterminada del sistema
Bean SplitPage
Implementación lógica de datos. paginación de registros y visualización de páginas (el más simple se puede encapsular en un bean (hermoso con hojas de estilo externas). Cuando se reutiliza, solo necesita pasar varios parámetros de un conjunto de registros, que generalmente se denomina bean Java a nivel de sesión en la página y en la sesión Guarde el estado de acceso del usuario a la página y recuerde siempre el número de página correspondiente al acceso del usuario a la página antes de que finalice la sesión. p>Implementación lógica del inicio de sesión del usuario y visualización de la página (la más simple se puede embellecer con una hoja de estilo externa) Encapsulado en un bean, incluido el procesamiento de varias situaciones de inicio de sesión del usuario, se puede reutilizar
Buscar. para Shudou
Utilice JDBC Realice funciones de recuperación difusa y de recuperación precisa de libros.
Bean SearchDeadline
Utilice JDBC para llamar a la vista para implementar la función de devolución de libros vencidos.
Servlet de autenticación
Genera dinámicamente imágenes con códigos de verificación aleatorios, escribe el código de verificación en la sesión mientras genera la imagen y lo compara con la entrada de inicio de sesión del usuario. Puede evitar eficazmente que los robots inicien sesión.
GetDelete servlet servlet
Procesa las operaciones de cierre de sesión de libros, usuarios y registros, y salta a la página correspondiente según el valor de retorno.
Servlet GetBookSubmit
Procesa el almacenamiento de libros y la modificación de la información del libro, y salta a la página correspondiente según el valor de retorno.
Servlet GetUserSubmit
Procesa el registro del usuario y la modificación de la información del usuario, y salta a la página correspondiente según el valor de retorno.
Servlet GetRenewBook
Procesa la solicitud de renovación del usuario (JDBC llama al procedimiento almacenado), lee el valor de estado de la tabla temporal del sistema y salta a la página correspondiente según el valor de estado.
Servlet GetBorrowBook
Procesa la solicitud de préstamo de libros del usuario y guía errores como que la cuota de préstamo del usuario está llena y el inventario es cero a una página de error amigable. Si el préstamo del libro se realiza correctamente, saltará a la página de información del libro y le dará las indicaciones correspondientes.
Servlet GetReturnBook
Procesa la solicitud de devolución de libros del usuario. Si el libro se devuelve exitosamente, saltará a la página de registro de préstamo de libros del usuario y le dará las indicaciones correspondientes.
4 Arquitectura del programa
4.1 Estructura organizativa del proyecto
Descripción: La búsqueda de libros y el inicio de sesión de usuario son funciones externas del sistema, que llaman directamente a la base de datos a través de JDBC, en qué usuario inicia sesión El módulo está encapsulado en un bean Java y se puede reutilizar. Además, los usuarios renuevan los libros mediante procedimientos almacenados, evitando así los beans de entidad que utilizan la tecnología CMP para gestionar las transacciones.
La estructura organizativa de otros proyectos en este sistema está estrictamente de acuerdo con la siguiente figura:
Organigrama planificado
4.2 División de autoridad funcional
Mapa de la página del sitio web
El sistema de nombres de permisos define los permisos del rol para acceder a la página.
Los lectores comunes leen su propia información (devuelven libros, renuevan libros);
modifican su propia información;
buscan libros (los usuarios toman prestados libros); /p>
Vista de usuario
Lista de libros
El bibliotecario BookAdmin tiene los permisos de los lectores normales;
Agregar, eliminar y consultar libros; p>
p>
Reembolso vencido; modificación del usuario
Vista de usuario
Lista de libros
Contable
Modificación del libro
p>Fecha límite
Administrador de usuarios UserAdmin tiene los permisos de lectores normales;
Adición, eliminación y modificación de usuarios.
Vista de usuario
Lista de libros
Registro de usuario
Modificación de usuario
Lista de usuarios
SuperAdmin, administrador del sistema, posee permisos de bibliotecarios y administradores de usuarios;
Ver registros del sistema;
Eliminar registros del sistema;
Configuraciones del sistema; todo incluido la página setupSYS.jsp (configuraciones del sistema, utilizando java beans a nivel de aplicación para controlar toda la aplicación).
4.3 Programa Web/Diseño de Página
Uso
Usa onfocus = this. seleccione () onmouseover = esto. El código focus() hace que el cuadro de texto absorba y gane foco automáticamente para facilitar la entrada del usuario.
Utilice el parámetro WMODE="transparent" para hacer que el fondo flash sea transparente y se integre mejor en la página web.
En cada página, utilice el código:
ltIFRAME borde del marco = 0 altura = 88 altura del margen = 0 ancho del margen = 0 desplazamiento = no src = "../iframe/ top htm " ancho = 755 color del borde = " # 000000 " > lt/IFRAME gt;
borde del marco ltIFRAME = 0 alto = 68 alto del margen = 0 ancho del margen = 0 desplazamiento = no src = ". /iframe/below . htm " width = 755 border color = " # 000000 " > lt/IFRAME gt;
Las barras de navegación superior e inferior integradas hacen que la navegación por el sitio web sea clara y cómoda para los usuarios.
Agregar código al encabezado:
ltmeta HTTP-EQUIV = " pragma " CONTENT = " no-cache " gt
ltmeta HTTP-EQUIV = " expires " CONTENT = " 0 "
El cliente no almacena en caché las páginas web, lo que garantiza que cada vez que el cliente navega por la página, obtenga la última versión del servidor y la muestre correctamente.
Proporciona libros de búsqueda inteligente (obtenga tantas coincidencias como sea posible) y búsqueda precisa (obtenga una coincidencia lo más precisa posible); la programación del lado del servidor utiliza búsqueda difusa.
Utilice javascript en el cliente para verificar el envío del formulario la primera vez y luego enviarlo al servidor la segunda vez. El código de verificación incluye: si el nombre de usuario se repite, si la edad es un número apropiado, si las dos contraseñas son consistentes, si el correo electrónico es legal, si la contraseña es demasiado corta, si el nombre de usuario es demasiado corto, si el el nombre de usuario y la contraseña están vacíos, etc.
Evita que los robots inicien sesión generando aleatoriamente códigos de verificación de imágenes JPG.
Utilice java beans a nivel de sesión para implementar la paginación en la página, guarde el estado de acceso del usuario a la página en la sesión y recuerde siempre el número de página correspondiente al acceso del usuario a la página antes del final de la sesión.
Utilice java beans a nivel de aplicación en la página para implementar configuraciones seguras del sistema. Cuando se inicia el servidor, los parámetros operativos del sistema se pueden configurar en el nivel de la aplicación. Esta configuración permanece vigente y se aplica a todos los usuarios siempre que el servidor no se apague. Si una configuración accidental causa un error del sistema o desea restaurar la configuración predeterminada del sistema, solo necesita reiniciar el servidor.
En el paquete de llamada ejbClient del bean de sesión, cree un registro de operaciones del sistema y escríbalo en C:\\booksManagerLog.dat del servidor web a través de la clase writeF en el paquete, que puede usarse para consulta.
4.4 Funciones implementadas por este sistema
Determina la información básica del libro, incluido el título, autor, fecha de publicación, estado actual del préstamo y otros atributos.
Los usuarios del sistema incluyen lectores, bibliotecarios, administradores de usuarios y administradores del sistema.
Los lectores pueden consultar libros; los bibliotecarios pueden completar la gestión de libros y los préstamos; los administradores de lectores pueden completar las funciones de gestión de lectores pueden utilizar todas las funciones del sistema.
Gestión de libros: alta de libros nuevos, consulta de libros, cancelación de libros;
Gestión de préstamos: préstamo y devolución de libros, consulta de lectores vencidos.
Gestión de lectores: agregue lectores, elimine lectores, consulte lectores, administre categorías de lectores (establezca la cantidad de libros que los estudiantes de posgrado, estudiantes universitarios, profesores, etc. pueden pedir prestados, la cantidad de días que pueden pedir prestados, el número de veces que se pueden renovar, etc.)
Administración del sistema: para uso de los administradores del sistema, incluida la administración de derechos de usuario (agregar usuarios, eliminar usuarios, cambiar contraseñas, etc.), registros de préstamo del sistema, registros de operación, configuraciones del sistema y otras funciones.
Hay un código de verificación ingresado en la página y el acceso con contraseña está encriptado.
Recordatorio de vencimiento de reserva
Refleja la idea de diseño en capas y utiliza la arquitectura MVC.
Implemente varios beans y realice la relación correspondiente entre beans.
Se utilizan EJB QL, control de transacciones, etc.
Usando JSP-gt; session bean-gt; entidad bean-gt; esquema de base de datos
La base de datos utiliza algunas tecnologías avanzadas, como activadores y procedimientos almacenados.