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

前排提示:

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


RFID标签和读卡器如上图

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

由于预期进度比较快(其实也没那么难),所以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模式的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硬盘,足够用来学习了。

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

其实就是教你怎么去发布一个静态网站。拿到这个证书,我学会了利用基于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图书借阅管理系统

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

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

【数据流图】

【数据库设计】

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】

【系统架构】

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

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

问题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 中的一些算法

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

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

  1. 基于SpringBoot的大数据个性化推荐的图书借阅管理系统

    目录 1 需求分析 1 2技术栈 1 3 总体设计 1 3.1 系统功能概述 1 3.1.1 前台系统 1 3.1.2 后台系统 2 3.2 E-R模型 2 3.3 系统流程图 4 4 详细设计 5 ...

  2. 基于微信小程序的线上图书馆图书借阅管理系统#毕业设计

    项目介绍 随着电子商务快速发展世界各地区,各个高校对图书馆也起来越重视.图书馆代表着一间学校或者地区的文化标志,因为图书馆丰富的图书资源能够带给我们重要的信息资源,图书馆管理系统是学校管理机制重要的一 ...

  3. 基于Spring boot的图书馆图书借阅管理系统的设计与实现

    作者主页:编程千纸鹤 作者简介:Java.前端.Python开发多年,做过高程,项目经理,架构师 主要内容:Java项目开发.毕业设计开发.面试技术整理.最新技术分享 收藏点赞不迷路  关注作者有好处 ...

  4. kingscada检测服务器状态,基于云服务器的状态检测平台

    技术领域 本发明涉及云服务器领域,尤其涉及一种基于云服务器的状态检测平台. 背景技术 云服务器(Elastic Compute Service,ECS)是一种简单高效.安全可靠.处理能力可弹性伸缩的计 ...

  5. 腾讯云服务器带宽计费模式按流量内网、外网出入流量计算说明

    腾讯云服务器公网带宽计费模式按使用流量计费,云服务器对内或对外产生的流量如何计算?云服务器出方向(下行流量)和入方向(上行流量)怎么计算?腾讯云百科来详细说下腾讯云服务器按使用流量计算说明: 腾讯云服 ...

  6. 图书借阅系统java_基于JAVAWEB的图书借阅系统

    [实例简介] 基于JAVAWEB的图书借阅系统,包含了源代码.数据库和论文 [实例截图] [核心代码] 图书借阅系统 └── 图书借阅系统 ├── 开题报告.doc ├── 毕设论文.docx ├── ...

  7. 基于javaweb+mysql的图书借阅管理系统(前台、后台)

    基于javaweb+mysql的图书借阅管理系统(前台.后台) 运行环境 Java≥8.MySQL≥5.7.Tomcat≥8 开发工具 eclipse/idea/myeclipse/sts等均可配置运 ...

  8. 基于javaweb图书借阅管理系统

    <javaweb图书借阅管理系统>该项目采用技术jsp.servlet.jdbc.tomcat服务器.mysql数据库 ,项目含有源码.文档.配套开发软件.软件安装教程.项目发布教程 功能 ...

  9. 基于javaweb的图书馆借阅管理系统(java+springboot+bootstrap+html+mysql)

    基于javaweb的图书馆借阅管理系统(java+springboot+bootstrap+html+mysql) 运行环境 Java≥8.MySQL≥5.7 开发工具 eclipse/idea/my ...

最新文章

  1. 多才多艺的移动式人形机器人iPal,担当起小朋友的“好家教”
  2. 一看就明白的爬虫入门讲解-基础理论篇(上篇)
  3. LINUX内核经典面试题
  4. 使用jsp实现word、excel格式报表打印-JSP教程,Jsp/Servlet
  5. Linux IPC / 分类
  6. 如何在JAVA程序中使用Struct一次传入多条数据给Oracle的存储过程
  7. SEO的有利因素跟不利因素
  8. java多维数组按照某一列排序,PHP实现二维数组按某列进行排序的方法
  9. c语言怎样输入动态数组代码,求助~~ 如何把数组变成动态输入的?
  10. 有三角形的即时通讯源码?
  11. php软件开发--redis操作
  12. Android Activity(一)Activity间的跳转
  13. 《云周刊》第121期:图管够!灌篮高手、女儿国…阿里日_这帮程序员太会玩了!...
  14. 骁龙865相当于什么处理器 骁龙865相当于麒麟的多少
  15. 判断单双周java_单双周计算
  16. JUC —— 常用辅助类
  17. 2021年超全超详细的最新大数据开发面试题,附答案解析
  18. 谷歌浏览器与IE浏览器不兼容问题
  19. c++逆天改命进阶--RedBlackTree
  20. 《从零开始搭建游戏服务器》Linux开发环境配置

热门文章

  1. 10个开源电子商务平台
  2. 资产管理之RFID资产管理系统解决方案-RFID资产智能盘点-新导智能
  3. 数理统计内容整理(一)基本概念
  4. Pycharm中,pyqt5.11.1的Qt assistant显示
  5. Qt Quick 渲染之 Scene Graph 详解
  6. Sneaky Sasquatch Mac(捣蛋大脚怪搞怪冒险游戏)
  7. Elasticsearch的ETL利器——Ingest节点
  8. 巧用模板和友联类型为vc++单元测试加一利器
  9. 一个站长找回域名的艰辛之路
  10. 软考 软件设计师 第五版+历年真题