基于云服务器 B/S模式 JavaWeb RFID 图书借阅管理系统

RFID图书借阅管理系统:点击此处访问系统

前排提示:

  1. 源码、文档(开题/结题报告/演示视频)包含于上述链接。
  2. 本文是一篇初学者写的 "软件文档"。
  3. 全部仔细阅读完毕需要10min。


基于云服务器 B/S模式 JavaWeb RFID 图书借阅管理系统_第1张图片

                                          RFID标签和读卡器如上图

/*-------------------------------------【开始】进度管理-----------------------------------------------*/

基于云服务器 B/S模式 JavaWeb RFID 图书借阅管理系统_第2张图片

由于预期进度比较快(其实也没那么难),所以JAVA GUI这块没有去学习和实践。

下面是开发日志:

09.23  软件需求说明书完成。数据库设计、数据流图、UML、开题PPT。

09.24  演示静态网站完成。介绍软件开发工具。


开题报告


10.04  初步编写核心类。java本地程序核心功能--借、换、续借、查完成,采用文件系统存储数据。

10.05  SQL导入MySQL。进行SQL语句的初步应用。

10.07  Java初步连接MySQL。java本地程序与DBMS-MySQL进行数据交互,此时采用数据库进行数据存储。

10.11  数据库交互完成。借阅表、核心类参数修改、等待RFID参数传入。

10.20  JSP初步连接MySQL。JSP JDBC连接DBMS,可初步进行数据查询。

10.20  JSP按钮加入。与java核心类相关的按钮未实现。传统方式重载整个网页,未使用ajax。

10.21  远程连接云数据库。mysql workbench8.0CE 连接 阿里云ECS云DBMS-MySQL5.7。

10.22  Java/JSP JDBC连接数据库。本地程序,web项目 分别与 云数据库进行数据交互。

10.22  JSP打包发布至云服务器,通过域名可访问项目。不同jsp之间使用a标签跳转。只能查询借阅。

10.23  RFID模块win下可读写标签,java环境下无法读写。读写RFID标签的 TID码。

           RFID中间件如何与系统高层-进行交互?需要在例程基础上进行二次开发。java io/网络

10.23  Java核心类加入JSP,本地程序上云,等待RFID模块完成。

10.23  系统前端界面开始编辑。

10.24  读写器java api开始适配本地环境。RXTX开源串口jar

10.25  RFID模块java环境下可读标签。基于Java 的RFID中间件开始设计。

10.25  Java中间件成功读出TID码。从api找相应函数--串口连接--设置波特率--while循环读整个TID--读取功能代码段从java 

           demo中找。

10.26  Java--TCP通信测试成功,可传字符串。

10.26  本地JAVA系统完成。刷标签识别userID以及bookID,之后四个功能运行无误,使用云数据库。

11.10  JSP核心类编写。JAVA核心类可以在JSP的SRC中直接进行编辑与调试。实际上可以直接开始写JSP。

11.11  JSP修改完成,等待与RFID中间件进行TCP通信。

11.11  基于Java的RFID中间件完成。集成读卡、信息识别、Tcp通信功能。

11.11  C/S图书借阅管理系统完成。TcpServer类加入服务器端JSP。

11.11  B/S图书借阅管理系统完成。点击按钮后不会出现提示信息。


中期报告


11.16  隐式URL配置域名主机--用来介绍项目。

12.12  中间件发布为 exe可执行程序,可随便移植(在装有串口驱动的计算机上),后期会加入端口匹配。

12.13 中间件实现自动匹配COM口。

12.15 中间件实现半自动。每次操作需要重新运行中间件,省略了手动输入环节。

12.25 文档完善、结题报告完成 。


结题报告

/*-------------------------------------【结束】进度管理-----------------------------------------------*/

 

/*-------------------------------------【开始】个人介绍-----------------------------------------------*/

【前言】

  写这篇文章的主要目的在于总结,开发项目时犄角旮旯的问题,只要是我遇到的,我都会写。一是方便自己,二来可以给大学低年级的同学开发项目作为参考。

 

  本人大三物联网专业,大三上有一门专业课----RFID,所以需要开发一个JavaWeb项目。

  首先我来描述一下这个项目。它是一个 基于云服务器B/S模式的Java Web RFID图书借阅管理系统。

  怎么样,是不是挺长的。江湖上传言,如果你要考研,那么只需炮制一个 图书管理系统,是的,我要考研。

  

  来说一下我的情况吧。

  大三物联网(大一在社科学习)转专业后课多的一批。至今不知道电路怎么焊接,对于硬件的课程知识混混学分。

  我们专业学的很杂,电路,单片机嵌入式,通信,信号处理等等。

  至于软件方面,大学听过一句话,“自学永远比不过科班”,这句话对大多数人都有效,是的,我也承认。

  其实对于软件我一直是在自学的,贴图为证!

  基于云服务器 B/S模式 JavaWeb RFID 图书借阅管理系统_第3张图片

基于云服务器 B/S模式 JavaWeb RFID 图书借阅管理系统_第4张图片

   大二的时候考了一个软件设计师,这个学期想直接考架构师,但是由于知识的局限,没有项目经验,论文是写不出的,所以这学期考了 网络工程师。

   以此证明我虽然比不上同年级软件科班,但是至少还是有一点基础的,所谓的一份辛劳一份才,比起没学过编程的,我自认为还是强一点。

  但是要做这个——基于云服务器B/S模式的Java Web RFID借阅管理系统,我觉得我有巨量的知识等待去学习、应用和总结。

  那么从今天起,到2018.12.31,我将把自己学习的经验附上,供大家来参考。

  欢迎读者朋友对文中的问题进行指正,在下将感激不尽。

/*-------------------------------------【结束】个人介绍-----------------------------------------------*/

 

 

 

/*-------------------------------------【开始】项目名称-----------------------------------------------*/

【关于 项目名称】

  基于云服务器B/S模式的Java Web RFID图书借阅管理系统

  

  我来简单解释一下,RFID图书借阅管理系统,可能大多数学校都有,你刷卡、放书、借书的那个机器,对!就是那个!

  Java Web,我用JSP来写这个项目,那显然是B/S模式,毕竟javaGUI我也不会,而且巨丑。

  基于云服务器,本人在阿里云有一台ECS,可以作为服务器,那么我做的系统自然是一个分布式的系统。

  

  那么这个项目涉及到了什么?

  JAVA JSP MySQL  前端那一堆 RFID这些仅仅是技术层面。

  我们还需要对系统进行分析,系统的架构是什么?功能是什么?开发的过程需要注意些什么?用什么开发工具?作为初学者该先学什么?数据库如何设计才能高效?系统的数据流?如何对系统进行建模?等等等等。

  当然我从开发的过程中是自创了一些小技巧的。

  我将逐一按照我自己的学习与开发的顺序,来复现遇到的问题,以及给出解决方案。

 

  【关于 JAVA】

  因为是基于JSP的项目,所以需要比较好的Java基础。

  java面向过程、面向对象、继承、多态、抽象、网络、数据库、异常。

  面向对象最为核心的部分,其实我在2017.11月,2018.5月的软考初级、中级考试的最后一道选做题中已有涉猎。

  只不过当时,只是想着去做题,并没有用想着去用代码实现。而且我当时考试其实都是用C++来写的,毕竟C++和Java还是有一些不同,但好在,面向对象的思想我了解到了,这也为后来的java学习打下了一些基础。最起码,我了解到了public 和 private。

  我在学习java的时候,说起来很是惭愧。并没有看什么所谓的《java从入门到精通》之类的书籍,而是......大二上学期的某一天看到促销网在卖java编程的书,不到40块钱2本书上下册,当时也没想多少,想着多学一些总是好的,拆掉快递包装后,它们就被我放在书柜里吃灰了,知道大二短学期结束以后,我才翻开它们,开始了解java。

  刚开始学习java,总不可能用诸如vs code之类的编辑器来打代码,所以理所当然的接触到了号称宇宙第一IDE之一之称的eclipse。开源、免费、CSDN有大量教学,这些对于一个初学者来说,足够了。

  接触过一些IDE,VS,eclipse,keil uv,quartus等等,终于发现要开始编程,总要去按照  项目--文件 的思想来进行下去。对应到eclipse的话,就是 新建项目-新建包-新建类。当然这只是针对于一个最简单的java程序来说。

 

【关于 云服务器】

  至少我认为对于学生来说,一台云服务器还是要比一块STM32开发板实惠得多的。

  云服务器,选择了阿里云的ECS,1M带宽、40G硬盘,足够用来学习了。

  我还是认为云服务器最简单粗暴的做法就是去挂一个网页,所以:

基于云服务器 B/S模式 JavaWeb RFID 图书借阅管理系统_第5张图片

其实就是教你怎么去发布一个静态网站。拿到这个证书,我学会了利用基于centos7系统的apache发布一个静态的网页。

当然,这门课还教如何在阿里云取得域名以及如何去备案。

最后的结果就是,我可以利用自己的域名去访问自己的网页了。

 

【关于B/S模式】

  B/S结构(Browser/Server,浏览器/服务器模式),是WEB兴起后的一种网络结构模式,WEB浏览器是客户端最主要的应用软件。这种模式统一了客户端,将系统功能实现的核心部分集中到服务器上,简化了系统的开发、维护和使用。客户机上只要安装一个浏览器(Browser英 ['braʊzə]美 ['braʊzɚ]),如Netscape Navigator或Internet Explorer,服务器安装SQL Server、Oracle、MYSQL等数据库。浏览器通过Web Server 同数据库进行数据交互。

  以上这段,节选自百度百科,大家了解以下就好。

  采用B/S模式,那么云服务器的方便性就可以体现出来,远程网络管理,而由于借阅图书需要刷卡,所以,我们需要RFID中间件。关于RFID中间件会在以后提到。

 

【关于RFID】

  RFID这门课程,是我们学校物联网工程专业大三的专业必修课。

  关于RFID是什么?下面有请百度百科:https://baike.baidu.com/item/%E5%B0%84%E9%A2%91%E8%AF%86%E5%88%AB%E6%8A%80%E6%9C%AF/9524139?fr=aladdin

  百度上所说的虽然没有书籍上讲的完整,但是对于一个没有接触过RFID的人来说,足够去了解RFID的一些基本知识了。

 

【关于RFID读写器/标签】

  读写器和标签是 恺乐的。读写器淘宝价格299,标签就要便宜两个数量级,大概1块。当然299的读写器是课程需要,学校统一购买,用完后需要归还,标签可以自己留作纪念。

 

好的,文章到此处呢,就把题目讲完了

题目是  ---  基于云服务器 B/S模式 JavaWeb RFID图书借阅管理系统

/*-------------------------------------【结束】项目名称-----------------------------------------------*/

 

 

 

/*-------------------------------------【开始】概要设计-----------------------------------------------*/

【数据流图】

 

  

基于云服务器 B/S模式 JavaWeb RFID 图书借阅管理系统_第6张图片

 

【数据库设计】

基于云服务器 B/S模式 JavaWeb RFID 图书借阅管理系统_第7张图片

 

基于云服务器 B/S模式 JavaWeb RFID 图书借阅管理系统_第8张图片

use library;
drop table if exists book;

/*==============================================================*/
/* Table: BOOK                                                  */
/*==============================================================*/

create table book
(
    bookID varchar(255),
    bookNumber varchar(255),
    bookName varchar(255),
    borrowDate int,
    returnDate int,
    bookState varchar(255),
    userID varchar(255),
    primary key (bookID)
);

INSERT INTO book VALUES("10001", "索书号", "《MySQL必知必会》", 88888888, 88888888, "未借出","8888888888888");
use library;
drop table if exists user;

/*==============================================================*/
/* Table: USER                                                  */
/*==============================================================*/

create table user
(
   userID               varchar(255),
   userName             varchar(255),
   totalBorrowNumber    int,
   nowBorrowNumber      int,
   primary key (userID)
);

insert into user VALUES('2016210904018','李道瑞',10,0);

【UML】

基于云服务器 B/S模式 JavaWeb RFID 图书借阅管理系统_第9张图片

 

 

【系统架构】

基于云服务器 B/S模式 JavaWeb RFID 图书借阅管理系统_第10张图片

 

/*-------------------------------------【结束】概要设计-----------------------------------------------*/

 

 

/*-------------------------------------【开始】问题归纳-----------------------------------------------*/

问题1:Eclipse的安装与配置

  去下载java的JRE与JDK,之后安装Eclipse。现在安装Eclipse不必去像某些书一样专门配置环境变量。

 

问题2:MySQL的安装与配置

  直接官网下载。附带默认DBMS-MySQL workbenchCE。

  打开MySQL workbench--新建本地/网络连接--worbench里新建数据库--数据库中新建db表文件

 

问题3:java项目连接MySQL

  项目右击-build path--add user library--添加MySQL java连接器 connector J(去programX86去找)--导入 mysql-connector-java-8.0.12.jar(诸如此样式)。

  导入连接器jar包后,即可在java文件中进行操作。

 

问题4:tomcat安装

  官网下载(我用的是tomcat8.5)后,傻瓜式安装。注意不要选错版本,win64或win32,这里的版本最好要和你的mysql、eclipse、jre、jdk版本位数都一致,要64位都选64位,以后项目相关的软件也一样,避免出现不必要的时间与精力浪费。

 

问题5:Eclipse配置tomcat

  build path---config---add library---sever runtime---选择对应的tomcat版本。

 

问题6:新版Eclipse配置web

  新版 eclipse安装 tomcat(web支持)

  Spring Boot 很火--所以新版eclipse不支持tomcat,按照下面博客进行操作。

  http://www.cnblogs.com/herd/p/9548592.html

 

问题7:云服务器配置

  首先,学习阿里云静态网站建设(阿里云大学)--之后进行操作--你将:拥有一台阿里云ECS云服务器,拥有公网域名并进行备案、学会使用阿里云域名解析、学会利用appache发布静态网页、学会利用putty连接云服务器、学会使用filezilla上传文件至云服务器。(课程大概50块,学生认证30块)。

  但是本项目所要搭建的是动态网页,所以更换云服务器镜像为:java运行环境(jdk8 tmcat8 mysql5.4)。具体更换镜像的方法请百度或在阿里云网站内查询解决方案。

 

问题8:数据库上云

     云服务器 命令行配置 修改密码 并使得mysql可以被远程连接

     阿里云ECS控制台  安全组 开放 出入3306端口

     以上两步详见:https://market.aliyun.com/products/53400005/cmjj014493.html 

     之后使用 mysql-workbenchCE进行远程连接(输入IP、端口、数据库、mysql用户/密码)

 

问题9:本地java项目连接云数据库

    linux下(云服务器下),mysql连接器放置到 tomcat 的 lib 目录下。

    使用mysql-workbenchCE连接云数据库,并进行相关操作-创建数据库、导入表等等。

    之后在本地java项目进行数据库的连接。(IP变服务器公网IP、端口号为之前在安全组规则设置的端口3306)

 

问题10:Eclipse新建jsp项目

    new - --project----dynamic web project

    之后src存放java文件,webcontent存放 网页设计相关文件(jsp、html、css、jpg、等等)

 

问题11:解决8080端口冲突

    1.回到桌面,快捷键win+R。弹出"运行"窗口,输入cmd

    2.然后在命令行中输入 “netstat -ano”回车

    3.找到占用 8080 端口号对应的PID

    4.打开任务管理器,在PID列中找到占用 8080的接口程序结束任务---强行终止 已知PID 的进程

 

问题12:jsp项目部署云端

    jsp进行云端适配后打包为 war,filezilla与云服务器进行sftp连接,将war上传到 tomcat的webapp。

    重启tomcat,war包将自动解压,之后可以通过 域名/项目名 访问项目,如果war包的名称为ROOT,

    则输入域名可以直接访问ROOT项目。

 

问题14:RFID读卡

    详细阅读java例程,提取关键代码。

    读卡流程:开计算机和设备波特率---连接---读卡----读卡处理(需要多读几次才可以读取正确的TID码)。

 

问题15:RFID中间件解决方案

   中间件对下使用API接口调用串口驱动与RFID读卡器进行串口通信。

   中间件自身对读取到的TID码进行信息识别--比如根据读取到的TID码判别读取的标签是学生卡还是书籍卡。

信息识别,可以使用数据库系统,也可以使用文件系统。

   中间件对上与RFID系统高层(云服务器)进行 tcp通信。

 

问题16:RFID中间件 发布为 exe可执行文件

参考:https://blog.csdn.net/qq_37400312/article/details/82014708

需要软件 exe4j 支持。

 

/*-------------------------------------【结束】问题归纳-----------------------------------------------*/

 

 

 

/*-------------------------------------【开始】软件改进-----------------------------------------------*/

改进1:交互性

   就本系统实现与图书馆一样的交互,基于本系统的开发模式,需要应用java多线程/并发技术。

   需要在tcp通信的基础上,用tcp来模拟更高层的“TCP”通信,来进行软件交互优化。

   由于时间有限,首要任务是功能的实现,所以复用了测试好的代码,其交互性与预期有出入。

 

改进2:并发性

   B/S架构的并发需要 进行深入的 软件功能设计。

   C/S架构的并发需要 进行数据库的规范与深入设计。

 

改进3:开发规范

   云端开发。

   开发软件版本控制。

   团队合作

 

改进4:设计模式/开发架构

  java设计模式---理论的应用与实践。

  开发架构---先进技术带来的效率提升,更加规范。对于不同规模的软件系统,选择合适的开发架构

  

改进5:抽象

  图书属于物品的一种。

  本系统-图书借阅管理系统(基于RFID),可以抽象为:物品借阅管理系统(基于RFID)

 

改进6:开放

  使用github作为代码仓库,需要熟悉git相关操作,以及拥有一定的英语能力,不能依靠插件翻译。

/*-------------------------------------【结束】软件改进-----------------------------------------------*/

 

 

/*-------------------------------------【开始】项目总结-----------------------------------------------*/

1、java基本语法、类的相关特性的学习。

2、利用阿里云 ECS 发布动态网站

3、简单 java TCP通信

4、简单的数据库建模、系统分析与设计

5、RFID相关知识学习,理论学习与 api 中的一些算法

/*-------------------------------------【结束】项目总结-----------------------------------------------*/

你可能感兴趣的:(RFID)