图书馆管理系统--基于Java和Redis+MySQL数据库

前言

图书管理系统是典型的信息管理系统。本次利用Redis和MySQL数据库来开发这个图书管理系统。该系统要解决的图书管理所要解决的问题,可以满足图书管理基本要求,包括添加、管理等功能。该系统能根据用户的需求,快捷方便的为读者提供借阅服务。图书管理系统主要针对书库的操作功能、所以系统应尽量满足需求、同时亦不可有多余或繁复的功能、令系统的操作和功能混乱。

图书管理系统应有以下功能:

1.读者库管理 2.书库管理 3.借阅管理 4.读者信息查询

一. Nginx多tomcat负载配置

Nginx可以提供当有多个服务器的时候可以提供负载均衡的功能,如果有某个服务器宕机可以提供故障转移,当出现网络波动的时候可以提供失败重试机制,不管是什么样的机制,首先需要配置多个服务,这里的服务使用Upstream进行配置。

1.1. Upstream Server配置

upstream 主要配置如下:

IP地址和端口号:配置上游服务器的IP地址和端口

1.2. 负载均衡算法

(1)轮询(默认)

每个请求按时间顺序逐一分配到不同的后端服务,如果后端某台服务器死机,自动剔除故障系统,使用户访问不受影响。

(2)weight(轮询权值)

weight的值越大分配到的访问概率越高,主要用于后端每台服务器性能不均衡的情况下。或者仅仅为在主从的情况下设置不同的权值,达到合理有效的地利用主机资源。

(3)ip_hash

每个请求按客户端P的哈希结果分配,使来自同一个IP的访客固定访问一台后端服务器,并且可以有效解决动态网页存在的session共享问题。俗称IP绑定。

二. Session一致性解决方案

可以看到前面讲负载均衡算法的时候可以使用ip_hash来实现session一致性的问题,因为当有多个tomcat的时候,对于某个客户端的登陆请求,由于其ip是固定的,所以最终一还是会路由的固定的tomcat上;实际除开上面的这种解决方案以外,还有另外一种SESSION一致性的解决方案,使用Redis来存放SESSION的内容,使用Spring Session框架,其底层其实就是重写了HttpSession的获取方式。

2.1. pom文件修改

2.2. 新增properties文件

application.properties文件内容如下,增加redis相关配置

2.3. 新增启动类

2.4. 启动Redis

启动 /redis-serve redis.conf

2.5. 测试

用户登陆后

这样相应的登陆的session信息就存放到了Redis中

三.管理员:实现对图书的增、删、改、查,对所有借阅历史的搜索及所有账户的信息,用户的权限与管理,设定密码,借阅图书及对自己账户的资料修改

用户:实现对图书的借阅功能、查看自己的借阅历史,在用户账户方面实现修改密码以及修改个人信息功能

另外:当数据库中用户表为空,则第一个注册的用户默认为管理员

下面上图:

登录界面:

注册界面:

用户登录:

主界面:

图书查询界面:

图书借还界面:

账户管理界面:

借书记录:

管理员登录:

主界面、图书查询、图书借阅界面与用户相同

账户管理:

借书记录:

账户信息:

修改权限:

图书管理界面:

添加图书:

四. 下面对我的图书管理系统的数据库方面做介绍:

我的数据库用的是Mysql 8.0.16 版本的对数据库没要求都可以,在建表写代码过程中为了方便使用了Navicat Premium 12连接数据库建表。项目文件夹中有mis数据库的.sql文件,只需在自己的数据库中创建mis数据库将.sql文件导入mis数据库即可

创建了数据库mis,在mis中创建了booktable(图书表)、usertable(用户表)、borrowrecords(借书记录)、bookcategory(图书类别)

booktable

另外booktable表格中的category属性参照bookcategory表当做外键

结论

图书馆信息管理系统数据库用以收集、存储书籍信息、人员(读者、图书管理员)信息、图书借阅信息以及意外处理信息,及时记录存储各个环节信息的变更,以便管理、查询、显示、输出,节约大量人力物力把人们从繁杂的手工记录方式中解脱出来的同时,有力保障图书馆日常事务的高效运作。

                                                                      ?? 添加 博主 获取源码资料??  


版权声明:本文为m0_61926454原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。