springboot基于微信小程序的酒店预订系统-附源码67163

摘 要

随着移动互联网的迅速发展,人们对于便捷的酒店预订体验的需求日益增长。为了满足这一需求,设计并实现了一款酒店预订系统。

本系统旨在提供一种用户友好、高效便捷的方式,让用户能够轻松地查找、预订酒店,并享受个性化的服务。通过小程序的形式,用户可以随时随地通过手机进行酒店预订,无需下载额外的应用程序,提供了更便捷的使用体验。

在设计过程中,充分考虑了用户需求和市场趋势。致力于打造一个功能齐全、界面简洁、操作流畅的酒店预订平台。通过使用 Spring Boot 框架,能够利用其强大的特性和优势,实现系统的快速开发和部署。

本酒店预订系统的设计与实现将为用户提供一种全新的、便捷的酒店预订方式,提升用户的满意度和预订体验。期待通过本系统的推广和使用,为酒店行业的发展带来新的机遇和挑战。

关键词:酒店预定;springboot框架;MySQL数据库

Design and Implementation of Hotel Reservation System

Abstract

With the rapid development of mobile Internet, people's demand for convenient hotel booking experience is growing. To meet this requirement, a hotel reservation system has been designed and implemented.

This system aims to provide a user-friendly, efficient and convenient way for users to easily find, book hotels, and enjoy personalized services. Through the form of mini programs, users can make hotel reservations anytime and anywhere through their mobile phones, without the need to download additional applications, providing a more convenient user experience.

During the design process, full consideration was given to user needs and market trends. Dedicated to creating a fully functional, user-friendly, and smooth hotel reservation platform. By using the Spring Boot framework, one can leverage its powerful features and advantages to achieve rapid system development and deployment.

The design and implementation of this hotel reservation system will provide users with a new and convenient hotel reservation method, improving their satisfaction and booking experience. We look forward to bringing new opportunities and challenges to the development of the hotel industry through the promotion and use of this system.

Keywords: Hotel reservations; Springboot framework; MySQL database

目  录

第1章 绪论

1.1 研究背景与意义

1.2 开发现状

第2章 相关技术介绍

2.1 微信开发者工具

2.2 小程序框架以及目录结构介绍

2.3 JAVA技术

2.4 Springboot框架

第3章 系统分析

3.1 可行性分析

3.2 功能需求分析

3.2.1 前台用户功能

3.2.2 后台管理员功能

3.3 非功能需求分析

3.4 安全性需求分析

3.4.1 系统的安全性

3.4.2 数据的安全性

3.5 业务流程分析

3.6 数据流程分析

第4章 系统设计

4.1 系统架构设计

4.2 系统总体设计

4.3 系统功能设计

4.4 数据库设计

4.4.1 数据需求分析

4.4.2 数据库概念设计

4.4.3 数据库表设计

第5章 系统实现

5.1 注册模块的实现

5.2 登录模块的实现

5.3 用户资料修改模块的实现

5.4 前台用户功能模块的实现

5.5 管理员功能模块的实现

第6章 系统测试

6.1 测试目的

6.2 功能测试

6.3 性能测试

第7章 总结与展望

参考文献

致谢

第1章 绪论

1.1研究背景与意义

近几年随着社会的发展,各地旅客数量不断增加,酒店数量也随之增加,导致酒店房间的管理方面的各种信息量也在不断成倍增长,因此,传统的酒店信息管理方式暴露出越来越多的问题,耗费人力,效率低下。这时,酒店就急需各种各样能使酒店工作人员对庞大的信息量进行更快更方便更准确进行管理的系统。

在互联网技术无处不在的今天,人们的生活已经离不开计算机,利用其工作、学习乃至购物。例如:人们去外地旅游或出差,通常会根据自己的需求选择在网上事先预订好房间,大大节约了找房的时间。此时,酒店就需要相应的房间预定系统对房间和预订信息进行管理。

对于房间数量较多的酒店来说,利用一套酒店预定系统来管理房间信息和预订信息显得尤为重要,这个系统不仅方便了客户进行预订,同时也方便了工作人员,大大节省了时间。所以开发一个酒店预订系统是很有必要的。

1.2开发现状

1、国内研究现状:

我国酒店业很早就利用计算机管理系统来加强管理、提高服务水平。我国酒店的IT的发展阶段主要是以电脑系统的运用为标志的,电话通讯系统实际上也是从程控交换技术出现才获得质的飞跃。随着计算机的普及应用,计算机技术的不断发展,同时也使酒店预定系统发展到了一个新的时期,趋于更加完善。酒店预定系统实现了酒店房间订房、入住、退房流程的智能化、自动化,节约了酒店的人工成本,较少了客人的等候时间,具有时尚、便捷、私密的特点。

2、国外研究现状:

国外的酒店业发展较为国内早了好多年,同事在多年的发展探索中,酒店的功能发展更加全面和多样化。酒店由一开始的建安住宿到现在的休闲娱乐以及商务旅游等,向着更复杂功能更齐全的方向发展。随着这些酒店的全面发展,其对酒店的管理要求也随着提高,为了更方便地管理酒店,在计算机迅速发展的背景下,产生了酒店预定系统软件,在很大成程度上减少了人力物力和财力,也同时使酒店的经营更加规范化。

第2章 相关技术介绍

2.1 微信开发者工具

微信开发者工具是一款专为小程序开发而设计的应用,它不断改进,提供了便捷的操作方式,并且在开发过程中可以通过微信扫描二维码来访问,从而实现快速、准确的小程序开发和调试。

根据用户的需求,我们将采用不同的屏幕大小来制作小程序。

在完成了视图布置之后,可以通过执行编辑功能,快速更改当前的视图界面。

控制台:方便调试打印输出信息。

将代码上传至腾讯服务器,并在审核过程中填写版本号和备注信息,以确保代码的安全性和准确性。

通过查看资源文件,我们可以快速地调整相关项目的文件目录,从而实现断点调试。

使用远程调试技术,无论是在手机端还是PC端,都能够轻松地进行开发工作。

本地数据存储:显示的是本地存储的数据。

通过使用子父层级结构,我们可以更容易地进行视图调试。

微信的代码体积应该保持在2M 以内,而且在开发过程中,应该严格检查合法域名信息,并且为小程序的后台配置服务器域名。

微信开发者工具已经成为了开发过程中不可或缺的一部分,并且正在不断地改进和完善。

2.2 小程序框架以及目录结构介绍

这款微信小程序的设计旨在帮助用户快速、便捷地创建出一款拥有完全独特 特色的应用。它由一套完善的框架结构,将用户界面、操作界面、功能界面等多种功能完美结合,使用户只需要一点点的操作,就能轻松实现微信小程序的创建。框架的核心功能是一个快速的数据绑定机制,它能够轻松地将用户的信息和界面进行一致性的管理。它不仅支持对用户信息的实时监控,还能够根据用户的需求,实现对界面的快速调整和优化,从而使用户能够轻松地构建强大的微信小程序。

2.3 JAVA技术

Java主要采用CORBA技术和安全模型,可以在互联网应用的数据保护。它还提供了对EJB(Enterprise JavaBeans)的全面支持,java servlet API,SSM(java server pages),和XML技术。

JAVA语言功能:

面向对象编程是一种革命性的软件开发方法,它将复杂的程序结构转换为可编程的对象,从而大大简化了编程过程,并且极大地提升了程序的安全性。它的出现,使得编程者可以更加轻松地完成任务,并且可以更好地控制程序的运行,从而更好地满足用户的需求。

Java的一个重要优势在于它的跨平台特性,这使得编程变得更加便捷。通过使用Java,您可以轻松访问多个不同的平台,而不必担心编译时会出现问题。

C++的缺陷之一便是它没有有效地利用可重复使用的资源,这使得它的资源需求量大大增加,而这种情况下,它的垃圾回收机制正好可以有效地解决这一问题,因而减少了资源的使用,进而节约了巨量的资源。一些优秀的编程人员通常都会将一块内存地址设为堆栈,以便当它被使用的时候自动解锁,但是一些初学者或者初入者往往忽略了这一步骤,结果就是程序的性能受到了影响,甚至出现了崩溃的情况。因此,许多C++专家在开发代码时,通常会先检查一个指针的值,如果它已经被移动,就把它的值调整到NULL,这样才能够有效地完成代码的执行。

2.4 Springboot框架

Java框架的出现,极大地改变了Java的运行方式,因为它不仅可以支持复杂的框架结构,而且还可以支持多种复杂的操纵,从而极大地改善了Java的效率和可靠性。此外,Java框架也被广泛地用来取代EJB(EnterpriseJavaBeans),成为一种更加强大的框架。Spring框架可以有效地支撑多种AP的开发,其中包括:基于控制反向的核心功能,可以将对象的生命周期变得更加可视,采取面向切面的编程语言,以及采取多种可靠的长效技术,以及支撑多种Web框架,以满足不同的AP的需求。Spring框架拥有强大的控制反馈(IOC)功能,使得Java对象的配置与管理变得更加简单高效。该框架采取Java的反馈机制,允许使用者根据XML文件、类别及其相关的Java注释等信息,自由地调整Java对象的使用,从而实现更加高效的编程。Spring框架拥有一种独特的方法来实现切割和分层,它采用了AOP框架,并且在使用过程中支持多种方法的协调。AOP的目的是将复杂的任务分解成多个独立的部分,以便更好地管控和控制。Spring框架的AOP框架拥有丰富的AOP特征,尽管不及AspectJ框架,但它们的结合仍然是一种有效的解决方案,它们不仅支持基础的AspectJ,还支持更高级的aop,从而更好地支持企业的业务流水线。此外,SpringAOP还支持更多的事务处理和远程访问。Java的事务处理框架提供了一种灵活的方式,允许不同类型的事务,包括本地、远程、内部、外部的,都能够被有效的处理。它支持多种类型的事务,用户可以根据需要自定义事务处理模块,如XML、Java文档,还支持快速、安全的数据交换。Spring的强大的数据访问功能为开发者们带来了极大的便利,无论是JDBC、iBATS/MyBATIs、Hibernate、JDO、ApacheOJB、ApacheCayne,都能够轻松地实现数据的访问,而且,这些功能也能够被Spring的事务管理系统完美地整合,从而大大减少了开发者们面临的挑战,极大地改善了他们的工作效率,极大地推动了企业级的信息化进步。通过使用这种方法,我们可以更加轻松地进行数据访问。SpringMVC的诞生源于一个开发者的决定:他们决定改变传统的StrutsWeb框架,将呈现层、请求处理层和模型完全分离,从而创建一个更加高效、可靠的SpringMVC。

第3章 系统分析

3.1可行性分析

技术性方面,现在科学技术在不断进步,计算机软硬件的发展已经达到了可持续的水平。Java语言的出现,使得普通的电脑也具备了完成该项目的功能,而且其占用的内存也极其紧凑,这使得使用MySQL进行软件的编程与设计几乎不会出现任何挑战。

实用性方面,本次设计的主要任务是在酒店预订系统内房间预订、留言发表、个人资料修改、房间预订订单查询等,符合当前潮流的发展。从用户角度出发,同时也考虑系统运营成本和人力资源,采用网络上的便捷方式,实现线上业务,使得业务流程更系统,也更方便用户的体验,比较实用。

经济性方面,由于本课题中设计的酒店预订系统的主要目的是为了能够更加方便及快捷的进行信息的查询管理及检索服务,也就是能够可以直接投入使用的信息化软件。系统的主要成本主要是集中在对使用数据后期继续维护及其管理更新这个操作上。但是一旦系统投入到实际的运行及使用之后就能够很好的提高信息查询检索的效率,同时也需要有效的保证查询者的信息方面的安全性,同时这个酒店预订系统所带来的实际应用方面的价值是远远的超过了实际系统进行开发与维护方面的成本,因此,从经济上来说开发这个软件是可行的。

3.2功能需求分析

酒店预订系统的功能主要分为前台用户根据自己的需求进行注册登录,浏览房间信息并对需要的房间进行预订操作。后台系统管理员因职责的不同,主要对注册用户,留言信息,房间详细信息,房间预订单进行处理。

用户用例图如下所示。

图3-1 用户用例图

管理员用例图如下所示。

图3-2 管理员用例图

3.2.1前台用户功能

前台用户可分为未注册用户需求和已注册用户需求。

未注册用户的功能如下:

注册账号:用户填写个人信息,并验证手机号码。

浏览公告信息:用户可以浏览主页面的公告信息来了解系统的最新公告信息。

浏览房间:用户可以根据房间类型浏览房间的信息,并选中某个房间查看详情,例如:房间号码、房间类型、房间楼层、房间面积、房间配置、单天价格、房间图片、房间简介等。

已注册用户的功能如下:

登录:根据账号密码进行登录操作。

维护个人信息:用户因个人信息的变更可以随时修改自己注册信息。

浏览评论信息:选中某间房间可查看其用户的评论。

房间预订:用户根据自己的需求选中某个房间进行预订操作。

房间预订订单:用户可以查看自己预订订单。

3.2.2后台管理员功能

管理员功能如下:

修改密码:管理员可以随时修改自己进入系统的登录密码,以保证系统的安全性。

房间信息管理:对房间信息进行维护,添加、删除、修改信息。

对预约信息进行处理:办理预约单审核等。

公告信息管理:发布、删除相关的公告信息信息。

用户管理:可以查看注册用户的信息,并对其进行管理。

3.3 非功能需求分析

首先主要考虑的是系统功能软件,在具体设计的环节上,是不是能够较好的满足各类用户的基本功能需求,如果不能较好的满足用户需求,那么这个系统的存在是没有价值的。软件系统的非功能性求分析,从7个方面展开,一个是性能分析,针对系统;一个是安全分析,针对系统,一个是完整度分析,针对系统,一个是可维护分析,针对系统,一个是可扩展性分析,针对系统,一个是适应业务的性能分析。面对酒店预订系统存在的性能、安全、扩展、完整度等7个方面性能综合比对分析后发现,需要相应的非功能性需求分析。

3.4 安全性需求分析

3.4.1系统的安全性

安全性对每一个系统来说都是非常重要的。安全性很好的系统可以保护酒店的信息和用户的信息不被窃取。提高系统的安全性不仅是对用户的负责,更是对酒店的负责。尤其针对于酒店预订系统来说,必须要有很好的安全性来保障整个系统。

系统具有对使用者有权限控制,针对角色的不通限制使用者的权限,以此来确保系统的安全性。

3.4.2数据的安全性

数据库中的数据是从外界输入的,当数据的输入时,由于种种原因,输入的数据会无效,或者是脏数据。因此,怎样保证输入的数据符合规定,成为了数据库系统,尤其是多用户的关系数据库系统首要关注的问题。

因此,在写入数据库时,要保证数据完整性、正确性和一致性。

3.5 业务流程分析

经过对系统功能的分析,调查,研究,总结出酒店预订系统主要实现的是对反馈信息、用户信息等管理功能。这样,可以对该系统绘制业务流程图。

如下为业务流程图图例。

3-3业务流程图图例

系统的业务流程如下图所示。

图3-4系统业务流程图

3.6 数据流程分析

根据上文所述的业务流程特点,首先对各个方面总的数据处理环节和外部实体进行了描述, 根据自顶向下原则,逐层分解功能,这个过程产生DFD图。

以下是本文当中使用的数据流图图例,见下图所示。

图3-5系统数据流图(0层)

零层数据流程是流程中最抽象的一层,它包括了注册与登录管理、用户功能管理和检索维护管理等功能模块,在登录注册模块使用到的数据存储有用户账户信息文档、用户信息文档,用户功能管理模块需要的存储是用户动态信息文档、留言信息文档、图片信息文档,检索维护是通过以上这些文档信息通过关键词进行搜索。

系统的0层数据流图如下图所示。

图3-6系统数据流图(0层)

一层数据流程图是对零层数据流程图的细化,将登录与注册细分为填制登录注册信息和完善信息,用户功能管理细分为用户基本功能管理和用户特色功能管理。

系统的1层数据流图如下图所示。

图3-7系统数据流图(1层)

二层数据流程是对一层数据流层图中填写登录注册信息、用户基本功能和用户特色功能的细化。即:填写登录注册信息细化为填制信息、后台审核,用户基本功能细化为公告浏览、房间评论、收藏房间、在线预定操作,用户特色功能细化为订单查询、在线付款操作。

系统的2层数据流图如下图所示。

图3-8系统数据流图(2层)

第4章 系统设计

4.1 系统架构设计

本酒店预订系统的架构设计主要分为可以3层,主要有Web层,业务层,Model层。其中web层还包括View层和Controller层,Model层包括元数据扩展层和数据访问层。

系统架构如下图所示。

图4-1 系统架构

4.2 系统总体设计

酒店预订系统总体分为前台用户模块和后台管理员模块。

两个模块表现上是分别独立存在,但是访问的数据库是一样的。每一个模块的功能都是根据先前完成的需求分析,并查阅相关资料后整理制作的。

综上所述,系统功能结构图如下图所示。

图4-2 系统功能结构图

4.3 系统功能设计

登录模块:登录模块是进入系统的入口,所有用户必须登录后才能访问系统。登录需要输入用户名和密码,如果多次尝试登录需要输入验证码。登录时需要选择用户的角色,是一般用户还是管理员登录等。登录成功后,会通过数据库获取用户的权限,并跳转至用户的主页面。

管理员用户管理模块:该模块包括普通用户管理和系统用户管理,系统用户主要是普通管理员,对用户信息进行管理,只有普通用户才可在该系统上进行相应的操作。用户对个人信息可进行修改;管理员可对自己的个人信息进行维护,同时可对用户的密码信息进行修改,也可删除系统中的用户

用户反馈模块:用户反馈促进用户之间的交流,发表个人意见、建议、看法等,在反馈区可以查看已有的反馈记录,发布新反馈,可以展示个人动态头像,个人匿名昵称等。

公告栏模块:可分为公告信息浏览、公告信息检索、公告信息维护三个模块,管理员对公告信息有维护的权限,发布新的公告信息、更新已有的公告信息等。

酒店房间管理模块:房间管理分为房间添加、修改和房间预订。酒店房间信息由管理员进行修改、添加、删除操作;房间预订由普通用户来执行。

4.4 数据库设计

4.4.1数据需求分析

从前面可以分析到数据库中最重要的是房间信息,预订信息,评价信息。分析可以得到如下数据描述:

平台用户:用于记录用户的各种信息,包括用户名、密码、姓名、性别、地址、邮箱、联系方式等数据项。

管理员:记录管理员的登录信息。包括用户名,密码,权限等数据项。

酒店房间:存储各种房间信息。包括房间号码、房间类型、房间楼层、房间面积、房间配置、单天价格、房间图片、房间简介等数据项。

预约信息。存储用户的房间预订信息。包括房间预订的房间号码、房间类型、单天价格、预约日期、预约天数、合计费用等数据项。

留言:存储用户的留言。包括留言内容,留言的信息,留言人,时间等数据项。

公告信息:存储平台内的公告信息内容。包括标题,公告信息内容,时间等数据项。

4.4.2数据库概念设计

根据前面的数据流程图,结合系统的功能模块设计,设计出符合系统的各信息实体。

系统ER图如下图所示。

图4-3 系统ER图

4.4.3数据库表设计

酒店预订系统所拥有的数据表有以下:用户信息表,预约信息表、评论信息表,酒店房间信息表,留言表等。由于数据表较多,只展示系统主要数据表,如下表所示。数据库表结构文档

表access_token (登陆访问时长)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

token_id

int

10

0

N

Y

临时访问牌ID

2

token

varchar

64

0

Y

N

临时访问牌

3

info

text

65535

0

Y

N

4

maxage

int

10

0

N

N

2

最大寿命:默认2小时

5

create_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

创建时间:

6

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间:

7

user_id

int

10

0

N

N

0

用户编号:

表appointment_information (预约信息)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

appointment_information_id

int

10

0

N

Y

预约信息ID

2

room_number

varchar

64

0

Y

N

房间号码

3

room_type

varchar

64

0

Y

N

房间类型

4

single_day_price

int

10

0

Y

N

0

单天价格

5

appointment_date

date

10

0

Y

N

预约日期

6

appointment_days

int

10

0

Y

N

0

预约天数

7

total_cost

varchar

64

0

Y

N

合计费用

8

regular_users

int

10

0

Y

N

0

普通用户

9

user_name

varchar

64

0

Y

N

用户姓名

10

user_phone_number

varchar

64

0

Y

N

用户电话

11

pay_state

varchar

16

0

N

N

未支付

支付状态

12

pay_type

varchar

16

0

Y

N

支付类型: 微信、支付宝、网银

13

create_time

datetime

19

0

N

N

CURRENT_TIMESTAMP

创建时间

14

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间

表article (文章:用于内容管理系统的文章)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

article_id

mediumint

8

0

N

Y

文章id:[0,8388607]

2

title

varchar

125

0

N

Y

标题:[0,125]用于文章和html的title标签中

3

type

varchar

64

0

N

N

0

文章分类:[0,1000]用来搜索指定类型的文章

4

hits

int

10

0

N

N

0

点击数:[0,1000000000]访问这篇文章的人次

5

praise_len

int

10

0

N

N

0

点赞数

6

create_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

创建时间:

7

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间:

8

source

varchar

255

0

Y

N

来源:[0,255]文章的出处

9

url

varchar

255

0

Y

N

来源地址:[0,255]用于跳转到发布该文章的网站

10

tag

varchar

255

0

Y

N

标签:[0,255]用于标注文章所属相关内容,多个标签用空格隔开

11

content

longtext

2147483647

0

Y

N

正文:文章的主体内容

12

img

varchar

255

0

Y

N

封面图

13

description

text

65535

0

Y

N

文章描述

表article_type (文章分类)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

type_id

smallint

5

0

N

Y

分类ID:[0,10000]

2

display

smallint

5

0

N

N

100

显示顺序:[0,1000]决定分类显示的先后顺序

3

name

varchar

16

0

N

N

分类名称:[2,16]

4

father_id

smallint

5

0

N

N

0

上级分类ID:[0,32767]

5

description

varchar

255

0

Y

N

描述:[0,255]描述该分类的作用

6

icon

text

65535

0

Y

N

分类图标:

7

url

varchar

255

0

Y

N

外链地址:[0,255]如果该分类是跳转到其他网站的情况下,就在该URL上设置

8

create_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

创建时间:

9

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间:

表auth (用户权限管理)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

auth_id

int

10

0

N

Y

授权ID:

2

user_group

varchar

64

0

Y

N

用户组:

3

mod_name

varchar

64

0

Y

N

模块名:

4

table_name

varchar

64

0

Y

N

表名:

5

page_title

varchar

255

0

Y

N

页面标题:

6

path

varchar

255

0

Y

N

路由路径:

7

position

varchar

32

0

Y

N

位置:

8

mode

varchar

32

0

N

N

_blank

跳转方式:

9

add

tinyint

3

0

N

N

1

是否可增加:

10

del

tinyint

3

0

N

N

1

是否可删除:

11

set

tinyint

3

0

N

N

1

是否可修改:

12

get

tinyint

3

0

N

N

1

是否可查看:

13

field_add

text

65535

0

Y

N

添加字段:

14

field_set

text

65535

0

Y

N

修改字段:

15

field_get

text

65535

0

Y

N

查询字段:

16

table_nav_name

varchar

500

0

Y

N

跨表导航名称:

17

table_nav

varchar

500

0

Y

N

跨表导航:

18

option

text

65535

0

Y

N

配置:

19

create_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

创建时间:

20

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间:

表collect (收藏)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

collect_id

int

10

0

N

Y

收藏ID:

2

user_id

int

10

0

N

N

0

收藏人ID:

3

source_table

varchar

255

0

Y

N

来源表:

4

source_field

varchar

255

0

Y

N

来源字段:

5

source_id

int

10

0

N

N

0

来源ID:

6

title

varchar

255

0

Y

N

标题:

7

img

varchar

255

0

Y

N

封面:

8

create_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

创建时间:

9

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间:

表comment (评论)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

comment_id

int

10

0

N

Y

评论ID:

2

user_id

int

10

0

N

N

0

评论人ID:

3

reply_to_id

int

10

0

N

N

0

回复评论ID:空为0

4

content

longtext

2147483647

0

Y

N

内容:

5

nickname

varchar

255

0

Y

N

昵称:

6

avatar

varchar

255

0

Y

N

头像地址:[0,255]

7

create_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

创建时间:

8

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间:

9

source_table

varchar

255

0

Y

N

来源表:

10

source_field

varchar

255

0

Y

N

来源字段:

11

source_id

int

10

0

N

N

0

来源ID:

表hits (用户点击)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

hits_id

int

10

0

N

Y

点赞ID:

2

user_id

int

10

0

N

N

0

点赞人:

3

create_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

创建时间:

4

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间:

5

source_table

varchar

255

0

Y

N

来源表:

6

source_field

varchar

255

0

Y

N

来源字段:

7

source_id

int

10

0

N

N

0

来源ID:

表hotel_rooms (酒店房间)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

hotel_rooms_id

int

10

0

N

Y

酒店房间ID

2

room_number

varchar

64

0

Y

N

房间号码

3

room_type

varchar

64

0

Y

N

房间类型

4

room_floor

varchar

64

0

Y

N

房间楼层

5

room_area

varchar

64

0

Y

N

房间面积

6

room_configuration

varchar

64

0

Y

N

房间配置

7

single_day_price

int

10

0

Y

N

0

单天价格

8

room_pictures

varchar

255

0

Y

N

房间图片

9

room_introduction

text

65535

0

Y

N

房间简介

10

hits

int

10

0

N

N

0

点击数

11

praise_len

int

10

0

N

N

0

点赞数

12

create_time

datetime

19

0

N

N

CURRENT_TIMESTAMP

创建时间

13

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间

表message (留言板)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

message_id

int

10

0

N

Y

留言板ID:

2

user_id

int

10

0

N

N

0

用户ID:

3

title

varchar

64

0

Y

N

标题:

4

content

longtext

2147483647

0

N

N

内容:

5

nickname

varchar

32

0

N

N

昵称:

6

avatar

varchar

255

0

Y

N

头像:

7

email

varchar

125

0

Y

N

留言者邮箱

8

phone

varchar

11

0

Y

N

留言者手机号码

9

create_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

创建时间:

10

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间:

11

reply

longtext

2147483647

0

Y

N

回复

12

reply_state

tinyint

4

0

Y

N

0

回复状态

表notice (公告)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

notice_id

mediumint

8

0

N

Y

公告id:

2

title

varchar

125

0

N

N

标题:

3

content

longtext

2147483647

0

Y

N

正文:

4

create_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

创建时间:

5

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间:

表praise (点赞)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

praise_id

int

10

0

N

Y

点赞ID:

2

user_id

int

10

0

N

N

0

点赞人:

3

create_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

创建时间:

4

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间:

5

source_table

varchar

255

0

Y

N

来源表:

6

source_field

varchar

255

0

Y

N

来源字段:

7

source_id

int

10

0

N

N

0

来源ID:

8

status

bit

1

0

N

N

1

点赞状态:1为点赞,0已取消

表regular_users (普通用户)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

regular_users_id

int

10

0

N

Y

普通用户ID

2

user_name

varchar

64

0

Y

N

用户姓名

3

user_gender

varchar

64

0

Y

N

用户性别

4

user_phone_number

varchar

64

0

Y

N

用户电话

5

examine_state

varchar

16

0

N

N

已通过

审核状态

6

user_id

int

10

0

N

N

0

用户ID

7

create_time

datetime

19

0

N

N

CURRENT_TIMESTAMP

创建时间

8

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间

表room_type (房间类型)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

room_type_id

int

10

0

N

Y

房间类型ID

2

room_type

varchar

64

0

Y

N

房间类型

3

create_time

datetime

19

0

N

N

CURRENT_TIMESTAMP

创建时间

4

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间

表sensitive_vocabulary (敏感词汇)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

sensitive_vocabulary_id

int

10

0

N

Y

敏感词汇ID

2

sensitive_vocabulary

varchar

64

0

Y

N

敏感词汇

3

create_time

datetime

19

0

N

N

CURRENT_TIMESTAMP

创建时间

4

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间

表slides (轮播图)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

slides_id

int

10

0

N

Y

轮播图ID:

2

title

varchar

64

0

Y

N

标题:

3

content

varchar

255

0

Y

N

内容:

4

url

varchar

255

0

Y

N

链接:

5

img

varchar

255

0

Y

N

轮播图:

6

hits

int

10

0

N

N

0

点击量:

7

create_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

创建时间:

8

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间:

表upload (文件上传)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

upload_id

int

10

0

N

Y

上传ID

2

name

varchar

64

0

Y

N

文件名

3

path

varchar

255

0

Y

N

访问路径

4

file

varchar

255

0

Y

N

文件路径

5

display

varchar

255

0

Y

N

显示顺序

6

father_id

int

10

0

Y

N

0

父级ID

7

dir

varchar

255

0

Y

N

文件夹

8

type

varchar

32

0

Y

N

文件类型

表user (用户账户:用于保存用户登录信息)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

user_id

mediumint

8

0

N

Y

用户ID:[0,8388607]用户获取其他与用户相关的数据

2

state

smallint

5

0

N

N

1

账户状态:[0,10](1可用|2异常|3已冻结|4已注销)

3

user_group

varchar

32

0

Y

N

所在用户组:[0,32767]决定用户身份和权限

4

login_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

上次登录时间:

5

phone

varchar

11

0

Y

N

手机号码:[0,11]用户的手机号码,用于找回密码时或登录时

6

phone_state

smallint

5

0

N

N

0

手机认证:[0,1](0未认证|1审核中|2已认证)

7

username

varchar

16

0

N

N

用户名:[0,16]用户登录时所用的账户名称

8

nickname

varchar

16

0

Y

N

昵称:[0,16]

9

password

varchar

64

0

N

N

密码:[0,32]用户登录所需的密码,由6-16位数字或英文组成

10

email

varchar

64

0

Y

N

邮箱:[0,64]用户的邮箱,用于找回密码时或登录时

11

email_state

smallint

5

0

N

N

0

邮箱认证:[0,1](0未认证|1审核中|2已认证)

12

avatar

varchar

255

0

Y

N

头像地址:[0,255]

13

open_id

varchar

255

0

Y

N

针对获取用户信息字段

14

create_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

创建时间:

15

vip_level

varchar

255

0

Y

N

会员等级

16

vip_discount

double

11

2

Y

N

0.00

会员折扣

表user_group (用户组:用于用户前端身份和鉴权)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

group_id

mediumint

8

0

N

Y

用户组ID:[0,8388607]

2

display

smallint

5

0

N

N

100

显示顺序:[0,1000]

3

name

varchar

16

0

N

N

名称:[0,16]

4

description

varchar

255

0

Y

N

描述:[0,255]描述该用户组的特点或权限范围

5

source_table

varchar

255

0

Y

N

来源表:

6

source_field

varchar

255

0

Y

N

来源字段:

7

source_id

int

10

0

N

N

0

来源ID:

8

register

smallint

5

0

Y

N

0

注册位置:

9

create_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

创建时间:

10

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间:

 

第5章 系统实现

5.1 注册模块的实现

用户在填写数据的时候必须与注册页面上的验证相匹配否则会注册失败,注册页面的表单验证是通过JavaScript进行验证的,用户名的长度必须在6到18之间,邮箱必须带有@符号,密码和密码确认必须相同,你输入的密码,系统会根据你输入密码的强度给出指定的值,电话号码和身份证号码必须要求输入格式与生活相符合,当你前台验证通过的时候你点击注册,表单会将你输入的值通过name值传递给后台并保存到数据库中。

用户注册流程图如下图所示。

图5-1用户注册流程图

用户注册界面如下图所示。

图5-2用户注册界面

5.2 登录模块的实现

主要由两部分组成,登录前的登录界面以及登录后的用户功能界面。登录界面,要求用户输入用户名和密码,当用户名和密码其中一个输入为空时,给出提示“用户名,密码不能为空”。获取用户名和密码后到数据库中查找,如果用户名存在,以及对应的密码正确,则登录成功,否则登录失败。登录失败后给出提示,并把焦点停在文本框中。登录成功后将该次会话的全局变量username设置为用户名。登录成功后进入会员的功能模块,主要有会员基本信息修改,已经发布商品信息管理,发布信息,和退出功能。退出功能是清除全局变量username的值,并跳回到首页。

登录流程图如下图所示。

图5-4登录流程图

用户登录界面如下图所示。

图5-5用户登录界面

5.3 用户资料修改模块的实现

用户登录/注册成功之后可以修改自己的基本信息。修改页面的表单中每一个input的name值都要与实体类中的参数相匹配,在用户点击修改页面的时候,如果改后用户名与数据库里面重复了,页面会提示该用户名已经存在了,否则通过Id来查询用户,并将用户的信息修改为表单提交的数据。

用户资料修改界面如下图所示。

图5-6用户资料修改界面

5.4 前台用户功能模块的实现

用户反馈模块,在用户反馈用户可以发表自己的留言。将页面session中的用户账号userId和发表留言文字框内容传入控制层LiuyanAction,调用addLiuyan方法,通过LiuyanDAOImp向数据库留言表插入,将结果返回lyb.jsp界面。

用户反馈添加流程图如下图所示。

图5-7用户反馈添加流程图

用户反馈界面如下所示。

图5-8留言发表界面

预约信息模块,预约信息功能整体流程:用户浏览房间信息时,同时会显示房间的状态,系统会在其显示详细信息的页面时便会判断房间的状态,若房间状态为可预订,则会显示预订的链接按钮。在用户点击预订按钮时,会先通过拦截器判断用户是否登录,若未登录,会跳转至登录页面,提示用户先登录,若为登录用户就会跳转至填写预订信息的页面,填写好预约信息之后,点击提交按钮,预订成功之后返回提示信息,告知用户预约成功。

预约信息流程图如下图所示。

图5-9预约信息流程图

预订信息界面如下图所示。

图5-10预约信息界面

5.5 管理员功能模块的实现

酒店房间管理,根据需求需要对房间进行添加、删除或修改详情信息。删除或修改房间时,系统根据房间的状态判定为可删除状态下,才会给出删除和修改链接,点击删除链接按钮时,请求到达后台,还会先查询房间状态再次做出判定能否删除。点击修改链接按钮时,会跳转到修改信息的页面,重新填写好数据后,数据提交到后台会对数据库中相应的记录做出修改。

添加房间时,会给出数据填写的页面,该页面根据填写好的房间编号同样会事先发送Ajax请求查询编号是否已存在,数据填写好之后提交到后台,会调用相关服务在数据库中插入记录。

酒店房间管理流程图如下图所示。

图5-11酒店房间管理流程图

酒店房间列表界面如下图所示。

图5-12酒店房间列表界面

酒店房间列表添加界面如下图所示。

图5-13酒店房间列表添加管理界面

预约信息管理,在预约信息管理页面,管理员可以查看房间号码、房间类型、单天价格、预约日期、预约天数、合计费用等信息,并可以查询预约状态。如下图所示。

图5-14预约信息管理页面

第6章 系统测试

6.1 测试目的

对任何系统而言,测试都是必不可少的环节,测试可以发现系统存在的很多问题,所有的软件上线之前,都应该进行充足的测试之后才能保证上线后不会Bug频发,或者是功能不满足需求等问题的发生。下面分别从单元测试,功能测试和用例测试来对系统进行测试以保证系统的稳定性和可靠性。

6.2 功能测试

下表是房间管理功能的测试用例,检测了房间管理中对房间信息的增加,删除,修改,查询操作是否成功运行。观察系统的响应情况,得出该功能也达到了设计目标,系统运行正确。

前置条件;用户登录系统。

表6-1 房间管理的测试用例

功能描述

用于房间管理

测试目的

检测房间管理时的各种操作的运行情况

测试数据以及操作

预期结果

实际结果

点击添加房间,必填项合法输入,点击保存

提示添加成功

与预期结果一致

点击添加房间,必填项输入不合法,点击保存

提示必填项不能为空

与预期结果一致

点击修改房间,必填项修改为空,点击保存

提示必填项不能为空

与预期结果一致

点击修改房间,必填项输入不合法,点击保存

提示必填项不能为空

与预期结果一致

点击删除房间,选择房间删除

提示删除成功

与预期结果一致

点击搜索房间,输入存在的房间名

查找出房间

与预期结果一致

点击搜索房间,输入不存在的房间名

不显示房间

与预期结果一致

下表是预订管理功能的测试用例,检测了预订管理中预订单的操作是否成功运行。观察系统的响应情况,得出该功能也达到了设计目标,系统运行正确。

前置条件;用户登录系统。

表6-2 预订管理的测试用例

功能描述

用于预订管理

测试目的

检测预订管理时各种操作的情况

测试数据以及操作

预期结果

实际结果

未选择房间,点击提交

提示请选择房间

与预期结果一致

未输入数量,点击提交

提示请输入数量

与预期结果一致

未输入时间,点击提交

提示请输入时间

与预期结果一致

6.3 性能测试

使用阿里云PTS(Performance Testing Service)性能测试服务对线上系统进行压力测试。线上服务器环境为:1核心CPU,1G内存,1Mbps公网带宽,Centos7.0操作系统。

压测过程中使用了2台并发机器,每台机器20个用户并发,对系统主页,登录,数据查询和数据维护等模块进行并发访问,测试结果是有40个用户并发时,数据管理相关页面的响应时间甚至达到了7s,通过查看服务器出网流量发现已经达到1381kb/s,可以看出服务器的带宽已经达到峰值,如果系统使用5Mbps的带宽,系统的响应时间和TPS将会大大增加。在整个测试的过程中,CPU的使用率占用仅8%,也提现出带宽瓶颈对系统的影响非常严重。

第7章 总结与展望

随着计算机互联网技术的迅猛发展,各行各业都已经实现采用计算机相关技术对日益放大的数据进行管理。该课题是酒店预订系统为核心展开的,主要是为了实现酒店预订管理和用户在线预订房间的需求。

在这次设计中,我通过不断地探索和学习,掌握了Java技术和微信开发者工具,并创建了一个酒店预订系统,这让我对编写小程序的必要性和运行环境有了更深入的了解。为了更好地完成这个项目,我花费了大量的时间,不仅丰富了自己的知识面,并且学习并积累了许多宝贵经验。系统刚开始时,我对微信小程序这个技术只是稍微有些了解,但是通过这次基于微信小程序的酒店预订系统设计,让我更加深入地去探讨了,微信小程序运转的原理,从中学到了如何去配置服务器环境和连接数据库。在基于微信小程序的酒店预订系统设计的过程中,我还学会了使用dreamweaver来建设一个简单的页面,这样可以极大程度提高我的实际操作能力,也因此激发了我对这个领域的浓烈兴趣。

小程序的这一次发展提升了我自己的能力,也学到了框架如何实现基本功能。同时在编程代码各方面也做了的很多尝试,从关注代码错误到做一些小的修改,都有了很大的提高。同时,在撰写论文时,还查阅了大量的参考资料,对论文的结构和文献资料进行了总结和分析。已作出努力,尽量减少错误和走弯路,从一开始的系统功能概念化到逐一实施,并进行了广泛的研究报告。也许后续操作过程中还有很多实现不完美的功能,但我依然会继续学习,努力在以后的软件开发、编号代码中吸取教训,总结不完美之处,努力的在软件开发越来越强。以上是我在本次设计中的总结,希望在未来取得更好的成绩。

参考文献

[1]袁琳琳.计算机软件Java编程特点及技术分析[J].数字通信世界,2023,(12):87-89.

[2]郑鹏,沙乐天.基于混合分析的Java反序列化漏洞检测方法[J].计算机工程,2023,49(12):136-145.DOI:10.19678/j.issn.1000-3428.0066151.

[3]马庆.计算机软件开发中JAVA编程语言的应用[J].山西电子技术,2023,(06):84-86+98.

[4]朱玉凤.基于JavaWeb的酒店管理系统的设计与实现[J].网络安全和信息化,2023,(12):91-94.

[5]Luqman H ,Anju A A ,Yoga R P , et al.Microplastic pollution profile in the Indian Ocean of the Southern Java Island, Indonesia[J].Environmental Challenges,2023,13

[6]G. D C .CheckFoV: A Java tool to compute and draw Field of View, visual overlapping and targets coverage[J].Software Impacts,2024,19

[7]刘青云,赵辉煌,林睦纲.地方高校同步课堂式Java实践课程教学改革研究[J].电脑知识与技术,2023,19(33):133-135.DOI:10.14004/j.cnki.ckt.2023.1728.

[8]Nero D R .How to write reusable Java code[J].InfoWorld.com,2023,

[9]Krill P .JDK 22: The new features in Java 22[J].InfoWorld.com,2023,

[10]张莹,王运霞,易超等.铁路企业差旅酒店预订系统数据治理技术研究[J].铁路计算机应用,2023,32(10):23-26.

[11]刘雨.酒店管理信息系统的发展演变[J].今日财富,2022,(14):40-42.

[12]钱春霞.智慧酒店系统设计研究[J].电子技术与软件工程,2022,(14):175-178.

[13]洪晖煌,潘善亮.基于MQTT的智慧酒店系统设计[J].无线通信技术,2022,31(02):59-62.

[14]于盛洋.智慧酒店管理系统设计与实现——基于RFID模块[J].产业科技创新,2022,4(02):37-40.

[15]关世友,刘晓辉.基于物联网六域模型的智慧酒店系统设计及应用[J].物联网技术,2022,12(03):95-99.DOI:10.16667/j.issn.2095-1302.2022.03.028.

[16]董华军.酒店管理系统的设计与实现[J].工业控制计算机,2022,35(01):140-141.

[17]张若淼,吴明霞.基于评论情感分析需求的酒店客房预定系统[J].电脑编程技巧与维护,2021,(12):13-14+20.DOI:10.16184/j.cnki.comprg.2021.12.005.

[18]冯朔,郑学智.基于边云协同的智慧酒店系统[J].电子设计工程,2021,29(19):19-24+30.DOI:10.14022/j.issn1674-6236.2021.19.004.

[19]岳颖颖.基于Web酒店管理系统设计分析[J].电子技术与软件工程,2021,(17):196-197.

[20]邵全勇,雒海东.基于CRM的酒店管理信息系统设计与实现[J].电子设计工程,2021,29(14):15-19.DOI:10.14022/j.issn1674-6236.2021.14.004.

致谢

眨眼之间,大学生活就要结束了。在本文的最后,我要感谢我和蔼可亲的导师团结有爱同学的帮助和鼓励。此刻,我找不到感谢之词可以用来表达我最深切的感激之情。首先,我要向我的导师池成英教授表示衷心的感谢。在实习期间的我总是很忙,论文撰写期间也是停停改改,但是我的导师依然对我十分负责,时常会询问我毕业设计的进展情况,督促着我的论文进度。到目前为止,老师严谨的教学态度、课堂上的谈笑,以及对我学术文章细致认真的修改,仍然深深地印在我的脑海中,挥之不去。从导师身上我学习到很多知识,和经验,这样的知识及经验令我受益匪浅。也从导师身上看到了自己的不足,不论是在基础层面上还是在对待工作的态度上,都如同明镜一般照出了我的缺点我的不足

其次,我还要感谢我的父母,感谢你们多年来的默默支持,感谢你们的理解、信任和期待,这是我前进的动力。最后,我还要感谢在百忙之中参与论文评审和答辩的专家评委们。我想就这篇文章的不足之处征求一些有价值的建议。

祝老师们身体健康,一切顺利!

就我个人而言,我很清楚本科论文的结束只是人生的转折点之一,大学毕业也是人生的转折之一。

至于我个人在理论和写作方面的不足,我将在未来的学习和工作中有所改进。

点赞+收藏+关注  →私信领取本源代码、数据库

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值